c++primer学习:顺序容器(1)

[1]顺序容器是指为程序员提供了控制元素存储和访问顺序的能力.大约包括了vector,deque,list,forward_list,array,string.

[2]我们需要判断什么时候该用什么样的容器,首先如果不确定的话就使用vector.其次如果需要对中间进行插入就使用list,对两边进行插入/删除就使用deque,如果只是在输入时有中间插入需求,就使用list,最后拷贝到一个vector里面.

[3]迭代器类似于指针,用来访问容器,因为大多数容器不支持下标运算和随机访问.迭代器本身也可以进行一些数学运算比如++,–,+,-,<,>.注意,对list它们是不支持的,因为链表不是连续内存存放的.

[4]v.end()指的是最后一个元素的后一个,而不是最后一个.

[5]如果只是读入数据,最好用::const_iterator.//cbegin,cend

[6]初始化:一个容器可以用另外一个容器进行拷贝,但是如果容器类型不同,必须用迭代器来拷贝!!!!。

list<string> s
 vector<string> In(s.begin(),s.end())// 正确
 vector<string>In(s)//错误,list , vector//不匹配

[7]用assign或=进行赋值,注意=只能赋值给完全一样的容器.assign(iterator1,iterator2)可以进行转换.

[7]顺序容器支持==,!=,>=,<=,>,<关系运算符号.比较规则是如果大小相同,类型一样,每个元素相同就像等.否则不等.如果大小不同,而较小的是较大的前缀子序列,则较小的小.否则比较第一个不同的元素.

练习:比较不同类型的对象.

int main()
{
    VecInt vec1 = { 1, 2, 3, 4, 5, 6 };
    list<int> L = { 2, 3, 4, 5, 6 };
    cout << (vector<int>(L.begin(),L.end())== vec1) << endl;//利用构造函数产生一个临时的对象进行比较
    return 0;
}

你可能感兴趣的:(c++primer学习:顺序容器(1))