C++ vector对象的学习与整理

来源:互联网 发布:万网域名信息查询 编辑:程序博客网 时间:2024/04/29 07:18

标准库类型vector | 基本操作

写在前面:vector对象相对数组来说,用起来比较方便也很实用。数组需要提前确定范围,作为容器的vector就很方便,并且有更多实用性的操作。复习一下这块内容,也是很有帮助的。


定义与初始化vector
vector不是一个类型而是一个模板,因而可以随意使用任意类型的vector。
只需要引入头文件vector就能使用,先记录一些常用的操作。

    vector<int> ivec;   //ivec保存int类型对象    vector<vector<string>> file;    vector<int> v1; //V1空vector,潜在元素是int类型    vector<int> v2(v1); //V1拷贝到V2    vector<int> v3(10, -1); //N个val    vector<int> v4(10); //初始化10个元素,其值为0    vector<int> v5{ 10 };   //初始化1个元素,其值为10

构造还是初始化
有时候,我们需要提前初始化一个vector对象,但是不同类型的元素通常有不同的操作。此处也有一些例子:

//简单记,使用括号表示构造vector;而花括号表示初始化vector。    //如果是string类型的vector,使用花括号相当于构造vector对象    vector<string> v8{ 10,"hi" };       //如果是带了引号,就是初始化    vector<string> v9{ "10","hi" }; 

比较有意思的是,一般花括号是用于初始化vector对象的,就像数组一样;也有例外情况,不过也特别容易理解。当元素类型是string的时候,使用花括号初始化的字面值是要带双引号的,如果没有遇到双引号的数字,那么就表示构造了。


向vector对象添加元素
既然说到vector和数组有比较相似的地方,那么添加元素也是差不多的。可以使用循环,像数组一样一个一个的添加元素。

    //向vector添加元素    for (int i = 0; i < 100; i++)    {        v1.push_back(i);    }

当然,也可以使用函数,在元素后面继续添加元素。

    vector<string> text;    string word = "haha";    text.push_back(word);

其他的vector操作
C++中封装了很多函数,我们可以使用这些函数方便的操作vector对象。列出一些其他常用的操作。

    //其他的vector操作    v.begin();  //vector首元素    v.end();  //vector莫    v.empty();  //判断元素是否为空    v.size();  //返回vector的长度    v.push_back(10);    v[10];

参考书目《C++ Primer 5th》

1 0
原创粉丝点击