您的位置:首页 > 编程语言 > C语言/C++

C++ STL中容器部分 有关deque(双端数组形式)的初始化 元素插入 遍历 以及distance()函数的使用 20180322day12

2018-03-22 09:49 676 查看
#include<iostream>
using namespace std;
#include"deque"  //deque的头文件
#include"algorithm"   //算法的头文件

void printfDeque(deque<int> &d)  //方便打印输出进行测试
{
for (deque<int>::iterator it = d.begin(); it != d.end(); it++)  //迭代器的遍历
{
cout << *it << " ";
}
cout << endl;
}

/*deque主要特点*/
//允许进行头部以及尾部两端的插入元素以及删除元素   push_back()  pop_back()  push_front()   pop_front()

//测试头部以及尾部两端的插入元素以及删除元素
void main41()
{
deque<int> d1;

//尾部插入元素
d1.push_back(1);
d1.push_back(2);
d1.push_back(3);

//头部插入元素
d1.push_front(-1);
d1.push_front(-2);
d1.push_front(-3);

//打印
cout << "初始化的元素" << endl;
printfDeque(d1);

//打印头部元素以及尾部元素
cout << "头部元素:" << d1.front() << endl;
cout << "尾部元素:" << d1.back() << endl;

//弹出头部元素以及尾部元素
d1.pop_front();
d1.pop_back();

printfDeque(d1);

//案例二  求出某一个元素所处位置的数组下标  例如这里请求出  2的数组下标

deque<int>::iterator it = find(d1.begin(), d1.end(), 2);   //find 为一张算法 作用是从双端数组的头到尾找到2的位置 并且返回一个迭代器位置

if (it != d1.end())   //代表已经找到
{
cout << "2的位置是:" << distance(d1.begin(), it) << endl;  //distance函数作用相当于从deque的开始到it位置处并返回这个区间的值
}
else
{
cout << "没有发现目标" << endl;
}

}
int main()
{
main41();//测试头部以及尾部两端的插入元素以及删除元素
system("pause");
return 0;
}
因为deque与vector基本一致,所以可以参照本人之前有关于vector容器的介绍进行一个理论的学习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐