C++ 容器整理

C++ 容器整理


一、容器

1.vector<T> 表示一个在必要时可自动增加容量的数组(自动增加的容量是当前容量的一半)。只能在矢量容器的末尾添加新元素。在矢量中间添加新元素会产生很大的开销。

vector<int> data;//创建一个容器(此时容量为0);

vector<int>data(100);//创建一个含有100个元素的矢量容器,全部初始化为0;

vector<int>data(100,-1);//创建一个含有100个元素的矢量容器,全部初始化为-1;

data[2]=999;//可以像数组那样使用;

data.push_back(99);   //矢量末尾添加一个新元素。

data.reserve(int n);   //n表示要容纳的最小元素个数,如果n小于当前容量,调用reserve()就没有用,否则提供可以容纳n个元素的内存。

data.begin();//返回第一个元素指针;

data.end();//返回最后一个元素的下一个位置的指针;

vector<int> values (data.begin(),data.end());//也可以使用begin()和end()来创建容器。

data.rbegin();//返回最后一个元素的指针;

data.rend();//指向第一个元素的下一个位置(即第一个元素前面的位置);

**注意:rbegin()和rend()是逆向迭代器;

data.size(); //返回当前容器大小;

data.capacity(); //返回当前容器的容量;

data.empty(); //判断容器是否为空,为空则返回true,否则返回false;

data.resize(int n); //修改容器大小;如果n小于当前容量,则从容器末尾删除足够多的元素,使它减小到新的大小;如果n大于当前容量,则在容器末尾添加新元素将容量增加到n。(新元素全部为默认值。)

data.resize(int n,<T> t); // 为新元素赋值t;

data.at(int i); //返回容器中第i个元素。等价data[i];但是如果i超出合法范围,at()会抛出out_of_range异常,而下标操作符的结果不确定。

data.front(); //返回第一个元素;

data.back(); //返回最后一个元素;

data.pop_back(); //删除最后一个元素;

data.clear(); //删除所有元素;

data.insert(位置指针,要插入的元素); //插入一个新元素,系统开销很大。

data.insert(位置指针,插入元素个数n,要插入的元素); //插入n个新元素,系统开销很大。

data.insert(位置指针,输入迭代器首位置,输入迭代器末位的下一个位置); //插入元素序列。

data.erase(位置指针); //删除位置指针的元素;

data.erase(迭代器首位置,迭代器末位的下一个位置); //删除元素序列

data1.swap(data2); //交换data1和data2.(data1和data2必须同类型);

data.assign(迭代器首位置,迭代器末位的下一个位置); //删除data原内容,用元素序列代替;

data.assign(int n<T> t); //删除data原内容,用n个t代替;

2.deque<T>容器实现一个双端队列。它等价于一个矢量,但是增加了向容器开头添加元素的能力。

3.list<T>容器是一个双向链表。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值