1.标准库定义的三种容器类型:vector,list,deque(double-ended queue)
2.容器构造函数
3.不同类型容器件的转化
*通过在构造函数中传递迭代器间接实现该功能
eg:
int arr[]={1,2,3,4,5};
vector<int> vec(arr,arr+5);
list<int> lst(vec.begin(),vec.end()); //如果直接传递容器,如list<int> lst1(vec);则出错
3.顺序容器可以接受函数的返回值来指定容器的大小
int f()
{
return 4;
};
int arr[f()]; //error
vector<int> vec(f(),1); //ok 1111
*如果自定义的类型无默认构造函数,则在指定容器大小时需指定每个元素的初始化式
eg:
class A
{
public:
A(int i):x(i){}
private:
int x;
};
vector<A> vec(10); //error
vector<A> vec1(10,1); //ok,都初始化为1
4.接受容器大小做形参的构造函数只适用于顺序容器,而关联容器不支持这种初始化。
5.顺序容器类型必须满足的两个约束
*元素类型必须支持赋值运算
*元素类型的对象必须可以复制
解析:
*IO标准库类型必要支持赋值或复制,所以,不能创建存放IO类型对象的容器
*引用不支持一般意义的赋值运算,因此不能创建存放引用类型的容器
eg:
vector<int&> vec; //error
6.容器的容器
eg:
vector<vector<int>> vec;
7.所有标准库常用迭代器运算
8.vector和deque容器的迭代器提供的额外运算
eg:
int arr[]={1,2,3,4,5};
vector<int> ivec(arr,arr+5);
list<int> lvec(arr,arr+5);
vector<int>::iterator iit=ivec.begin()+ivec.size()/2; //ok
list<int>::iterator lit=lvec.begin()+lvec.size()/2; //error
相关文章
- C++三种容器:list、vector和deque的区别
- c++的STL模板库中3种容器类:vector,list,deque的比较
- 顺序容器:vector,deque,list
- C++ 顺序容器(vector,list、deque,stack,queue)
- C++学习总结(二十七)——STL容器与算法(一) STL容器的组成,线性容器(array,vector,tuple,queue,deque,stack),链式容器(list)
- C++——STL之vector, list, deque容器对比与常用函数
- stl 顺序容器vector(priority_queue),顺序容器List,顺序容器deque(queue, stack)详解
- C++标准库---STL三大序列容器vector&deque&list
- C++标准库---STL三大序列容器vector&deque&list
- C++顺序容器vector、deque、list