【24.1.16笔记】C++ Primer自学 Day12

三、C++数据类型

10、vector容器类型

        使用vector容器时,必须要包含相关的头文件:

#include <vector>

        初始化vector容器的几种方式【使用了vector类的几种构造函数】:

1、模仿数组初始化方式
    vector< int > ivec( 10 ); //因为这里是构造函数,于是需要用小括号
2、vector类的缺省初始化
    vector< int > ivec;
3、显式为vector数组初始化
    vector< int > ivec( 10, -1 );//给数组赋值十个负一
4、拷贝数组地址为vector初始化
    int ia[ 6 ] = { -2, -1, 0, 1, 2, 1024 };
    vector< int > ivec( ia, ia+6 );//一定是地址,不能是数组的值,也可以使用取址符把一个中间区间的元素分配给vector
5、使用另外一个vector初始化
    vector< string > svec;
    vector< string > user_names( svec );

        vector的使用有两种风格,第一种是数组风格,第二种是STL容器风格。

        和数组一样,vector可以通过下标访问元素,用size()和empty()来检查大小。

ivec.size(); //返回元素个数
ivec.empty(); //返回是否是空的数组

        在vector中插入或者删除元素:

ivec.push_back(val);//在数组最后插入val
ivec.pop_back();//弹出数组最后元素
ivec.insert(pos,n,val);//在pos位置【是一个地址】之前插入n个值为val的元素
ivec.insert(pos,{a,b,c});//在pos位置之前插入a,b,c三个元素
ivec.erase(pos);//删除pos位置上的元素
ivec.erase(pos1,pos2);//删除pos1到pos2之间的元素,包含pos1,不包含pos2

        vector除了使用下标来访问元素,还可以通过迭代器来操作和访问元素:【在这之前先要知道怎么返回vector的地址】

ivec.begin();
ivec.end();

        知道了怎么获取vector的地址之后,就能够通过它操作集中的迭代器对元素进行访问了:

vector<string>::iterator it = text.begin();
也可以使用auto,一般我们不关心迭代器的类型
auto iterator it = text.begin();

        迭代器具有指针的功能,可以通过解引用来访问元素的值。

11、

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值