#include<deque>
#include<iostream>
#include<algorithm>
void dequePrint(std::deque<int>&d)
{
for (std::deque<int>::iterator it = d.begin(); it != d.end(); it++)
{
std::cout << *it << ' ';
}
std::cout << std::endl;
}
void test01()
{
std::deque <int>d;
std::deque<int>d1 (6,100); //给d1赋初值,6个100
dequePrint(d1);
d = d1; //d1赋值给d
dequePrint(d);
d.clear(); //清空d
dequePrint(d);
d.assign(d1.begin(), d1.end()); //将d1中的元素根据迭代器来赋值
dequePrint(d);
d.clear();
d.assign(6, 1000); //给d赋初值,6个1000
dequePrint(d);
if (d.empty())
std::cout << "d为空" << std::endl;
else
std::cout << "d不为空:" << std::endl; //判断d是否为空
std::cout << d.size() << std::endl; //输出d的元素个数
d.resize(10, 6); //重新指定d的元素个数(为10),若d变长,则用elem(6)补充
// 若d变短,则删除多余的元素
dequePrint(d);
d.push_back(10); //尾插
d.push_front(1); //头插
dequePrint(d);
d.pop_back(); //尾删
d.pop_front(); //头删
dequePrint(d);
d.insert(d.begin(), 4); //指定位置插入一个数
d.insert(d.begin(), 5, 8); //指定位置插入语5个8
dequePrint(d);
d.insert(d.end(), d1.begin(), d1.end()); //在d.end()位置插入d1.begin()到d1.end()位置的元素(左闭右开)
dequePrint(d);
std::deque<int>::iterator dit=d.begin();
dit++;
d.erase(dit,d.end()); //删除从dit 位置到d.end()位置的元素
dequePrint(d);
d.erase(d.begin()); //删除d.begin()位置的元素
dequePrint(d);
d = d1;
dequePrint(d);
std::cout << d[1] << " " << d.at(1) << std::endl; //输出d[1]位置的元素
std::cout << d.front() << " " << d.back() << std:: endl; //输出d首尾元素
std::deque<int>d3;
for (int i = 10; i > 0; i--)
d3.push_back(i);
sort(d3.begin(),d3.end());
dequePrint(d3); //用algorithm库中的sort排序函数排序,默认为升序(从小到大)
}
int main()
{
test01();
}
C++STL中的deque用法
最新推荐文章于 2023-06-01 00:05:02 发布