首页 > 试题广场 >

在标准 C++类库中,双向队列类(deque)的长度是可变的

[问答题]
在标准 C++类库中,双向队列类(deque)的长度是可变的,成员函数 resize( n, T x = T())可加长已有的双向队列对象,size() const 返回队列长度,max_size() const 返回系统可支持的最大双向队列长度,请构造一个字符型双向队列,体会这几个成员函数的用 法。


推荐

解:

#include <iostream>
#include <deque>
using namespace std;
typedef deque<char > CHARDEQUE;
void print_contents (CHARDEQUE deque, char*);
void main()
{
//create a with A, B, C and D
CHARDEQUE a;
a.push_back('A');
a.push_back('B');
a.push_back('C');
a.push_back('D');
//print out the contents
print_contents (a,"a");
cout <<"max_size of a is " <<a.max_size() <<endl;
cout <<"size of a is " <<a.size() <<endl;
//let us increase the size to 10
// and set the new elements to be 'X'
a.resize(10,'X');
print_contents (a,"a");
cout <<"size of a is " <<a.size() <<endl;
//let us resize it to 5
a.resize(5);
print_contents (a,"a");
cout <<"size of a is " <<a.size() <<endl;
cout <<"max_size of a is still " <<a.max_size() <<endl;
}
//function to print the contents of deque
void print_contents (CHARDEQUE deque, char *name)
{
CHARDEQUE::iterator pdeque;
cout <<"The contents of "<< name <<" : ";
for(pdeque = deque.begin();
pdeque != deque.end();
pdeque++)
{
cout << *pdeque <<" " ;
}
cout<<endl;
}

程序运行输出:

The contents of a : A B C D

max_size of a is 4294967295 s

ize of a is 4

The contents of a : A B C D X X X X X X

size of a is 10

The contents of a : A B C D X

size of a is 5

max_size of a is still 4294967295



发表于 2018-04-18 20:42:50 回复(0)