1.#include
容器的改编,它实现了一个先进后出的数据结构
#include<iostream>
#include<stack>
using namespace std;
int main(void)
{
stack<double>s;//定义一个栈
for(int i=0;i<10;i++)
s.push(i);
while(!s.empty())
{
printf("%lf\n",s.top());
s.pop();
}
cout<<"栈内的元素的个数为:"<<s.size()<<endl;
return 0;
}
- #include
注意:访问和存元素不一样,可以访问第一个元素不代表可以直接存在第一个位置
#include <iostream>
#include <queue>
using namespace std;
int main()
{
int e, n, m;
queue<int> q1;
for (int i = 0; i<10; i++)
q1.push(i);
if (!q1.empty())
cout << "dui lie bu kong\n";
n = q1.size();
cout << n << endl;
m = q1.back();
cout << m << endl;
for (int j = 0; j<n; j++)
{
e = q1.front();
cout << e << " ";
q1.pop();
}
cout << endl;
if (q1.empty())
cout << "dui lie kong\n";
system("PAUSE");
return 0;
}
3.#include
#include<stdio.h>
#include<deque>
using namespace std;
int main(void)
{
int i;
int a[10] = {0,1,2,3,4,5,6,7,8,9};
deque<int> q;
for(i=0;i<=9;i++)
{
if(i%2==0)
q.push_front(a[i]);
else
q.push_back(a[i]);
} /*此时队列里的内容是: {8,6,4,2,0,1,3,5,7,9}*/
q.pop_front();
printf("%d\n", q.front()); /*清除第一个元素后输出第一个(6)*/
q.pop_back();
printf("%d\n", q.back()); /*清除最后一个元素后输出最后一个(7)*/
return 0;
}
4.#include
vector的元素不仅仅可以是int, double, string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错
https://blog.csdn.net/xiaoquantouer/article/details/51579148
template
class vector {
private:
T* pbegin; //指向T类型的指针
int n; //当前大小
public:
vector() {
pbegin = new T[100]; //暂时先固定大小
n = 0;
}
T* begin() {
return pbegin;
}
void insert(T d){
pbegin[n++] = d;
}
typedef T* iterator; //vector的迭代器就是基础指针类型
};
//测试vector
//只要知道数组的首地址,就能知道后面每个元素的位置,所以,访问vector的迭代器,其实就是一个基础的指针类型,我们可以通过++,--等操作,来遍历访问该vector
vector<int> a;
a.insert(1);
a.insert(2);
vector<int>::iterator itra;
itra = a.begin();
printf("%d/n", *itra);
itra++;
printf("%d/n", *itra);
itra--; //基础指针类型都支持++,--,+,-等操作符
printf("%d/n", *itra);
5 set