vc 使用容器

 
vc 使用容器 deque
deque是标准模板库中的内容和vector一样,deque是双端队列.
 
函数                                                            描述
c.assign(beg,end)              将[beg; end)区间中的数据赋值给c。
c.assign(n,elem)                将n个elem的拷贝赋值给c。
 
c.at(idx)                传回索引idx所指的数据,如果idx越界,抛出out_of_range。
c.back()                                  传回最后一个数据,不检查这个数据是否存在。
c.begin()                              传回迭代器重的可一个数据。
c.clear()                              移除容器中所有数据。

deque<Elem> c                      创建一个空的deque。
deque<Elem> c1(c2)            复制一个deque。
Deque<Elem> c(n)                创建一个deque,含有n个数据,数据均已缺省构造产生。
Deque<Elem> c(n, elem)    创建一个含有n个elem拷贝的deque。
Deque<Elem> c(beg,end)    创建一个以[beg;end)区间的deque。
c.~deque<Elem>()                销毁所有数据,释放内存。

c.empty()                              判断容器是否为空。
 
c.end()                                  指向迭代器中的最后一个数据地址。
 
c.erase(pos)                        删除pos位置的数据,传回下一个数据的位置。
c.erase(beg,end)                删除[beg,end)区间的数据,传回下一个数据的位置。
 

c.front()                            传回地一个数据。
get_allocator                    使用构造函数返回一个拷贝。
c.insert(pos,elem)            在pos位置插入一个elem拷贝,传回新数据位置。
c.insert(pos,n,elem)      在pos位置插入>n个elem数据。无返回值。
c.insert(pos,beg,end)    在pos位置插入在[beg,end)区间的数据。无返回值。

c.max_size()                      返回容器中最大数据的数量。
c.pop_back()                      删除最后一个数据。
c.pop_front()                    删除头部数据。
c.push_back(elem)            在尾部加入一个数据。
c.push_front(elem)          在头部插入一个数据。
c.rbegin()                          传回一个逆向队列的第一个数据。
c.rend()                              传回一个逆向队列的最后一个数据的下一个位置。
c.resize(num)                    重新指定队列的长度。
c.size()                              返回容器中实际数据的个数。
C1.swap(c2)                        将c1和c2元素互换。
Swap(c1,c2)                        同上操作。
 
Deque操作
operator[] 返回容器中指定位置的一个引用。
 
引用:
#include <deque>  /*#include <vector>*/
using namespace std;
 
声明:
std::deque<CClass_A>m_p1;
 
使用:
m_p1.push_back(message);
m_p1.front();
m_p1.pop_front ();
m_p1.size();
 
容器 vector 是动态分配空间,作为管理动态数组的优先选择
1) max_size()
返回 vector<T> 理论上可以装的最多 T 的个数。这只是一个理论上的数字, 大概是 4GB/sizeof(T),没有多大实用价值。在程序中不要用。
2) size()
返回 vector<T> 中实际装的 T 的个数。相当于 CArray<>::GetSize()。
3) empty()
如果 vector<T> 中没有任何 T 对象,返回 true。也就是返回 size() == 0。
4) clear();
清除 vector<T> 中的所有 T 对象。执行后 empty() 返回 true。大致相当于 resize(0),但不要求 T 可被缺省构造。相当于 CArray<>::RemoveAll()。
5) resize( size_t n, T t = T() );
将 vector 中的元素个数设置为 n,n 可以大于 size() 也可以小于 size。如果 n 小于 size(),那么 vector 中下标为 n..size()-1 的元素都将被解构。如果 n > size(),那么将在 vector 的后面新增加
n - size() 个相同的元素 t。在增大 vector 时,可能发生存储再次分配。总之,调用resize( n, t ) 后,(size() == n) 成立。
请注意,如果调用 resize( n ) 不带参数 t ,那么 T 必须可以缺省构造。
6) reserve( size_t n );
事先分配至少可以保存 n 个 T 对象的空间。调用后 (capacity() >= n)成立。
7) capacity();
返回已经分配的存储空间够容纳的 T 类型对象的个数。后续的增加元素操作(如 push_back(), insert())如果增加元素后 vector 中的总元素个数不超过 capacity(),那么 vector 的实现保证不重新分配存储空间。
 
v.push_back( i );
 
// 删除 50, 51, ..., 89:
v.erase( v.begin() + 50, v.end() - 10 );
   
// 删除 49, 48:
v.pop_back();
v.pop_back();
   
// 全部删除:
v.clear();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值