1、构造函数
#include <iostream>
#include <deque>
#include <string>
#include <algorithm>
using namespace std;
int main ()
{
string str[]={"Alex","John","Robert"};
// 新建一个空的deque对象
deque<int> d1;
// 新建一个包含10个元素的deque对象
deque<int> d2(10);
// 新建一个包含10个元素的deque对象,并给每个元素赋初始值0
deque<int> d3(10,0);
// 新建一个deque对象并用指定区间给元素赋值
deque<string> d4(str+0,str+3);
deque<string>::iterator sIt = d4.begin();
while ( sIt != d4.end() )
cout << *sIt++ << " ";
cout << endl;
// 拷贝构造
deque<string> d5(d4);
for ( int i=0; i<3; i++ )
cout << d5[i] << " ";
cout << endl;
return 0;
}
运行结果:
// Alex John Robert
// Alex John Robert
2、assign——初始化或者重置容器内元素
#include <iostream>
#include <deque>
#include <algorithm>
#include <iterator>
using namespace std;
int main ()
{
int ary[]={1,2,3,4,5};
deque<int> d;
// 将 "ary" 数组成员分配给 "d" 对象
d.assign(ary,ary+5);
copy(d.begin(),d.end(),
ostream_iterator<int>(cout," "));
cout << endl;
// 用3份100替换d对象内元素
d.assign(3,100);
copy(d.begin(),d.end(),
ostream_iterator(cout," "));
cout << endl;
return 0;
}
运行结果:
// 1 2 3 4 5
// 100 100 100
3、at——按照指定偏移量访问容器元素,类似于[]运算符
#include <iostream>
#include <deque>
using namespace std;
int main ()
{
deque<int> d(3,0);
d[0] = 100;
d.at(1) = 200;
for ( int i=0; i<3; i++ )
cout << d.at(i) << " ";
cout << endl;
return 0;
}
运行结果:
// 100 200 0
4、back——返回容器的最后一个元素值,等价于*(容器.end()-1)或容器[容器.size-1]
#include <iostream>
#include <deque>
#include <string>
#include <iterator>
using namespace std;
template<class T, class D>
class Member
{
public:
Member(T t, D d) : name(t), sal(d) {}
void print();
private:
T name;
D sal;
};
template<class T, class D>
void Member::print()
{
cout << name << " " << sal << endl;
}
//======================================
int main ()
{
typedef Member<string,double> M;
deque<M> d;
d.push_back(M("Robert",60000));
d.push_back(M("Linda",75000));
deque<M>::iterator It = d.begin();
cout << "Entire deque:" << endl;
while ( It != d.end() )
(It++)->print();
cout << endl;
cout << "Return from back()" << endl;
d.back().print();
return 0;
}
运行结果:
// Entire deque:
// Robert 60000
// Linda 75000
//
// Return from back()
// Linda 75000
5、begin——返回容器头
#include <iostream>
#include <deque>
#include <iterator>
#include <numeric>
using namespace std;
int main ()
{
deque<int> d(5);
iota(d.begin(),d.end(),1);
deque<int>::iterator It = d.begin();
while ( It != d.end() )
cout << *It++ << " ";
cout << endl;
// deque的第三个元素
It = d.begin()+2;
cout << *It << endl;
return 0;
}
运行结果:
// 1 2 3 4 5
// 3
6、clear——容器就像一个盒子,clear便是拿走盒子里面的东西
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
template <class T>
class Print
{
public:
void operator () (T& t)
{
cout << t << " ";
}
};
//==============================
int main ()
{
deque<int> d(10);
Print<int> print;
fill(d.begin(),d.end(),5);
cout << "Deque d : ";
for_each(d.begin(),d.end(),print);
cout << endl;
cout << "Size of d = " << d.size()
<< endl;
cout << "d.clear" << endl;
d.clear();
cout << "Deque d : ";
for_each(d.begin(),d.end(),print);
cout << endl;
cout << "Size of d = " << d.size()
<< endl;
cout << "Deque d is ";
d.empty() ? cout << "" : cout << "not ";
cout << "empty" << endl;
return 0;
}
运行结果:
// Deque d : 5 5 5 5 5 5 5 5 5 5
// Size of d = 10
// d.clear
// Deque d :
// Size of d = 0
// Deque d is empty
7、empty——容器就像一个盒子,empty便是判断盒子里面是否有东西
#include <iostream>
#include <deque>
using namespace std;
int main ()
{
deque<int> d;
cout << "Deque is ";
d.empty() ? cout << "" : cout << "not ";
cout << "empty" << endl;
d.push_back(100);
cout << "Deque is ";
d.empty() ? cout << "" : cout << "not ";
cout << "empty" << endl;
return 0;
}
// Deque is empty
// Deque is not empty
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。



