您的位置:首页 > 编程语言 > C语言/C++

C++中标准库类型vector易忘知识点总结

2018-01-15 13:01 309 查看

Vector

1.vector在开始创建的时候尽量创建空的vector对象,等到需要的时候再动态添加元素。

2.如果循环内部包含有向vector对象添加元素的语句,则不能使用范围for循环,范围for循环的语法格式是:

  for(declaration:expression)

  statement

 注意:expression表示的必须是一个序列,初始值列表、数组、vector、string等类型的对象,这些类型的特点是有头有尾,能返回迭代器的begin和end成员。

 例如:()

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<int> v1{1,2,3};
for (auto i : v1)
cout << i << endl;
system("pause");
return 0;
}

 所以,其实范围for循环的原理就是提前预存了对象的头(begin())和尾(end())的值,相当于已经固定好了,此时你若在vector对象的序列中添加或删除元素时,
 end()函数的值也就是尾部就可能变的无效了。

3.使用下标的方式向vector对象添加元素时要注意,除非vector对象的大小已知,否则不能进行添加。

#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for (int i = 0; i < 10; i++)
v[i] = i;
for (auto i : v)
cout << i << " ";
system("pause");
return 0;
}                                

  因为此刻的v就是一个空的vector,还没有任何元素,所以就不能通过下标去访问元素。此时正确方法是使用push_back或者先确定vector的大小,建议使用第一种方式。

4.和string一样,vector对象的下标类型也是size_type,标准库将size_type定义为unsigned类型,相当于无符号整型。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: