共通操作
ContType c //默认构造函数,建立一个未含任何元素的空容器
ContType c(c2) //复制构造函数,建立一个新容器成为c2的拷贝(复制所有元素)
ContType c = c2 //复制构造函数,建立一个新容器成为c2的拷贝(复制所有元素)
ContType c(rv) //Move构造函数,建立一个新容器,取右值rv的内容为初值,不适用于array<>
ContType c = rv ///Move构造函数,建立一个新容器,取右值rv的内容为初值,不适用于
ContType c(beg,end) //建立一个容器,以[beg,end)区间内的所有元素拷贝为初值
ContType c(initlist) //建立一个容器,以初值列initlist的拷贝为初值
ContType c = initlist //建立一个容器,以初值列initlist的拷贝为初值
c.~ContType() //删除所有元素,释放内存
c.empty()//判断容器是否为空
c.size()//返回容器中的元素数量 不适用于forward_list<>
c.max_szie()//返回容器最大可能数量
c1 == c2 //判断c1是否等于c2
c1 != c2//判断c1是否不等于c2
c1 < c2 //判断c1是否小于c2 不适用于unordered容器
c1 > c2 //判断c1是否大于c2 不适用于unordered容器
c1 <= c2 //判断c1是否小于等于c2 不适用于unordered容器
c1 >= c2 //判断c1是否大于等于c2 不适用于unordered容器
c = c2 //将c2所有元素赋值给c
c = rv //将右值rv以移动赋值的方式赋予c,不适用于array
c = initlist //将初值列initlist中的所有元素赋值给c
c1.swap(c2) //置换c1和c2
swap(c1,c2)//同上 是全局函数
c.begin() //返回一个迭代器,指向第一个元素
c.end() //返回一个迭代器,指向最末元素的下一个位置
c.cbegin() //返回一个const 迭代器,指向第一个元素
c.cend() //返回一个const 迭代器,指向第一个元素
c.clear() //移除所有元素,令容器为空,不适用于array
初始化
指明初值初始化:
const vector<int>v1 = { 1,2,3,4,5,6,7,8 };
const vector<int>v2{ 1,2,3,54,56,7,4 };
对常量容器的初始化特别有用
以另一容器的元素被初值,初始化:
list<int>l;
vector<float>c(l.begin(), l.end());
list<string>n;
vector<string>c(make_move_iterator(l.begin()), make_move_iterator(l.end()));
int carray[]{ 2,3,54,6,6 };
set<int>c(begin(carray), end(carray));
以标准输入设备完成初始化动作:
deque<int>c{ std::istream_iterator<int>(std::cin),istream_iterator<int>() };
赋值和Swap()
C++11起,可以使用移动赋值语义,如果赋值后的右侧容器内容不再被使用,应该使用移动赋值语义:
vector<int>v1;
vector<int>v2;
v2 = move(v1);
C++98起,所有容器都提供成员函数swap()
元素访问
所有容器都提供迭代器接口,支持基于范围的for循环,C++11开始,最容易访问所有元素的办法如下:
for (const auto & elem : coll)
{
std::cout << elem << ' ';
}
如果想要修改元素,可以这样:
for (auto & elem : coll)
{
elem = ...;
}
还可以这样:
for (auto pos = coll.cbegin(); pos != coll.cend(); ++pos)
{
cout << *pos << endl;
}
容器提供的类型:
size_type //表现容器大小的无正负号整数类型
difference_type //带正负号的差距值的类型
value_type //元素的类型
reference //元素的引用的类型
const_reference //常量元素的引用的类型
iterator //迭代器类型
const_iterator //指向只读元素的迭代器的类型
pointer//指向元素的指针的类型
const_pointer//指向只读元素的指针的类型