文章目录
deque容器常见操作
deque是一个双端队列,相比于vector:deque的首部插入效率比vector高,deque的读取效率没有vector高。
一、deque构造函数
//deque的构造函数
#include <deque>
void printDeque(const deque<int>& d)
{
for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) //const_iterator是一个常迭代器
{
cout << *it << " ";
}
cout << endl;
}
void test()
{
deque<int> d1; //默认构造
for (int i = 0; i < 10; i++)
{
d1.push_back(i);
}
printDeque(d1);
deque<int> d2(d1.begin() + 1, d1.end() - 1); //构造
printDeque(d2);
deque<int> d3(3, 100); //构造
printDeque(d3);
deque<int> d4(d3); //拷贝构造
printDeque(d4);
}
int main()
{
test();
return 0;
}
二、deque容器赋值
//deque容器赋值
void test()
{
deque<int> d1;
for (int i = 0; i < 10; i++)
{
d1.push_back(i);
}
printDeque(d1);
deque<int> d2 = d1; //operator= 赋值
printDeque(d2);
deque<int> d3;
d3.assign(d1.begin() + 1, d1.end()); //assign区间赋值
printDeque(d3);
deque<int> d4;
d4.assign(8, 100); //n个element元素赋值
printDeque(d4);
}
int main()
{
test();
return 0;
}
三、deque容器大小操作
//deque大小操作:empty, size, resize
//deque没有capacity的概念
void test()
{
deque<int> d1;
for (int i = 0; i < 5; i++)
{
d1.push_back(i);
}
cout << d1.empty() << endl;
cout << d1.size() << endl;
d1.resize(10);
printDeque(d1);
cout << d1.size() << endl;
d1.resize(12, 100);
printDeque(d1);
}
int main()
{
test();
return 0;
}
四、deque容器插入和删除
//deque容器插入和删除
//push_front, push_back, pop_back, pop_front, insert, erase, clear
void test()
{
deque<int> d1;
d1.push_back(10);
d1.push_back(20);
d1.push_front(100);
d1.push_front(200);
printDeque(d1);
d1.pop_back();
d1.pop_front();
printDeque(d1);
d1.insert(d1.begin(), 1000);
d1.insert(d1.begin() + 1, 2, 2000);
printDeque(d1);
d1.erase(d1.begin(), d1.begin() + 2);
printDeque(d1);
d1.clear();
}
int main()
{
test();
return 0;
}
五、deque容器存取
//deque容器存取:operator[], at, back, front
void test()
{
deque<int> d1;
d1.push_back(10);
d1.push_back(20);
d1.push_back(30);
d1.push_front(100);
printDeque(d1);
cout << d1[1] << endl;
cout << d1.at(2) << endl;
cout << d1.back() << endl;
cout << d1.front() << endl;
}
int main()
{
test();
return 0;
}
六、deque容器排序
//deque容器排序
#include <algorithm>
void test()
{
deque<int> d1;
d1.push_back(10);
d1.push_back(20);
d1.push_back(100);
d1.push_front(200);
sort(d1.begin(), d1.end());
printDeque(d1);
}
int main()
{
test();
return 0;
}