std::deque::size
函数原型:
size_type size() const noexcept;
返回双端队列容器中的元素数。
参数:
无
返回值:
容器中的元素数。
成员类型size_type是无符号整数类型。
std::deque::max_size
函数原型:
size_type max_size() const noexcept;
返回双端队列容器可以容纳的最大元素数。
由于已知的系统或库实现限制,这是容器可以达到的最大潜在大小,但是绝不能保证容器能够达到该大小:在达到该大小之前,它仍然无法在任何时候分配存储 。
参数:
无
返回值:
双端队列容器可以容纳的最大元素数。
成员类型size_type是无符号整数类型。
std::deque::resize
函数原型:
void resize (size_type n);
void resize (size_type n, const value_type& val);
简介:
调整容器的大小,使其包含n个元素。
如果n小于当前容器的大小,则将内容减少到其前n个元素,并删除超出范围的元素(并销毁它们)。
如果n大于当前容器的大小,则通过在末尾插入任意数量的元素以达到n的大小来扩展内容。 如果指定了val,则将新元素初始化为val的副本,否则,将对它们进行值初始化。
请注意,此函数通过插入或擦除容器中的元素来更改容器的实际内容。
参数:
n:
新的容器大小,以元素数表示。
成员类型size_type是无符号整数类型。
val:
如果n大于当前容器的大小,则将其内容复制到添加的元素的对象。
如果未指定,则使用默认构造函数。
成员类型value_type是容器中元素的类型,在deque中定义为第一个模板参数(T)的别名。
返回值:
无
如果增长,则使用容器的分配器分配新元素的存储,这可能会在失败时引发异常(对于默认分配器,如果分配请求未成功,则抛出bad_alloc)。
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
void Print(int& Ele)
{
cout<<Ele<<" ";
}
void main()
{
// 初始化 D1,D2,D3,D31,D4,D5
deque<int>D1; // D1为空
deque<int>D2(5); // D2:5个0
deque<int>D3(10,2),D31(10,3); // D3:10个2 D31:10个3
deque<int>D4(D3); // D4:和D3一样
deque<int>D5(D31.begin(),D31.end()); // D5:和D31一样
// 依次打印 D1,D2,D3,D31,D4,D5
cout<<"D1:"<<endl;
for_each(D1.begin(),D1.end(),Print);
cout<<endl;
cout<<"D2:"<<endl;
for_each(D2.begin(),D2.end(),Print);
cout<<endl;
cout<<"D3:"<<endl;
for_each(D3.begin(),D3.end(),Print);
cout<<endl;
cout<<"D31:"<<endl;
for_each(D31.begin(),D31.end(),Print);
cout<<endl;
cout<<"D4:"<<endl;
for_each(D4.begin(),D4.end(),Print);
cout<<endl;
cout<<"D5:"<<endl;
for_each(D5.begin(),D5.end(),Print);
cout<<endl;
///
int size=D2.size();
cout<<"D2大小为: "<<size<<endl;
int Msize=D2.max_size();
cout<<"D2允许最大大小为: "<<Msize<<endl;
D31.resize(5,'A');
cout<<"D31:"<<endl;
for_each(D31.begin(),D31.end(),Print);
cout<<endl;
D31.resize(7,0);
cout<<"D31:"<<endl;
for_each(D31.begin(),D31.end(),Print);
cout<<endl;
}