《C++ primer》9.3.1、9.3.3
1、交换容器中的元素
std::list<int> a = {1,2,3};
std::list<int> b = {4,5};
a.swap(b);
qDebug()<<a<<b;
std::array<int,5> c;
std::array<int,5> d;
c.swap(d);
只能交换相同存放数据类型的容器,定长数组array只能与同样长度的array交换
2、添加元素
- 拷贝元素:把元素添加到容器是拷贝了一份元素后添加,之后原来的元素的变化不影响容器中的元素
- push_back:在尾部追加
- push_front:在头部追加
- insert:在任何位置添加
- 在容器里构造元素
- emplace 构造后添加到指定位置
- emplace_back 构造后添加到尾部
- emplace_front 构造后添加到前面
class ceshi
{
public:
ceshi(int a)
{
qDebug()<<"a = "<<a;
this->a = a;
}
private:
int a;
};
int main(int argc, char *argv[])
{
std::list<ceshi> list;
ceshi ss(3);
list.push_back(ss);
list.emplace_back(1);
list.emplace_front(4);
list.emplace(list.begin(),66);
}
list.emplace_back(1);//调用ceshi的构造函数,将1作为构造函数的参数构造的元素放到容器尾部
3、删除元素
pop_front 删除首元素
pop_back 删除尾元素
erase(参数:迭代器) 删除一个或多个元素
clear 删除所有元素,相对于erase(list.begin(),list.end())