前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小朋友学C++(18):标准库vector类

小朋友学C++(18):标准库vector类

作者头像
海天一树
发布2018-04-17 13:08:42
4300
发布2018-04-17 13:08:42
举报
文章被收录于专栏:海天一树

vector(向量)是 C++中的一种数据结构,也是一个类。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。

一、定义和初始化

vectorv1; // T为类型名,比如int, float, string等 vectorv2(v1); // 将v1赋值给v2 vectorv3(n,i); // v3中含n个值为i的元素

二、操作

v.empty(); // 判断v是否为空 v.size(); // 返回v的长度 v.begin(); // 返回v的第一个元素 v.end(); // 返回v最后一个元素的下一个元素的值(指向一个不存在的值) v.push_back(a); //在v的最后添加元素a(a必须与v的类型一致)

三、迭代器(iterator)

迭代器相当于指针,用来储存vector中元素的位置,即下标

定义:

代码语言:javascript
复制
vector<T>::iteartor iter = v.begin();    //iter指向v第一个元素
vector<T>::iteartor iter = v.end();     //iter指向v最后一个元素的下一个元素,这个元素不存在,通常用作循环结束的标志
*iter                                            //*iter指向的元素的值,可对其进行赋值
iter++                                         //iter指向v下一个元素

常见用法: for(vector::iterator iter = v.begin(); iter != v.end(); ++iter) { }

四、例子

代码语言:javascript
复制
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char** argv) 
{
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    cout << "Size of v is: " << v.size() << endl;
    for(vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
    {
        cout << *iter << ' ';   
    }
    cout << endl << endl;
    vector<float> v2(5, 3.33);
    cout << "Size of v2 is: " << v2.size() << endl;
    for(vector<float>::iterator iter = v2.begin(); iter != v2.end(); iter++)
    {
        cout << *iter << ' ';   
    }
    return 0;
}

运行结果:

代码语言:javascript
复制
Size of v is 3
1 2 3
Size of v2 is 5
3.33 3.33 3.33 3.33 3.33

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海天一树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、定义和初始化
  • 二、操作
  • 三、迭代器(iterator)
  • 四、例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档