容器适配器
栈
#include <iostream>
#include <list>
#include <stack>
using namespace std;
int main(void)
{
stack<int, list<int> >s;
for (int i = 0; i < 5; i++)
{
s.push(i);
}
/*for (size_t i = 0; i < s.size(); i++)
{
cout << s.top() << ' ';
s.pop();
}*/
while (!s.empty())
{
cout << s.top() << ' ';
s.pop();
}
cout << endl;
return 0;
}
队列
#include <iostream>
#include <list>
#include <stack>
#include <queue>
using namespace std;
int main(void)
{
queue<int, list<int> >q;
for (int i = 0; i < 5; i++)
{
q.push(i);
}
while (!q.empty())
{
cout << q.front() << ' ';
q.pop();
}
cout << endl;
return 0;
}
优先级队列(priority_queue)
#include <iostream>
#include <functional>
#include <vector>
#include <list>
#include <stack>
#include <queue>
using namespace std;
int main(void)
{
int a[] = { 5, 1, 2, 4, 3 };
priority_queue<int,vector<int>,greater<int> > q(a,a+5);
while (!q.empty())
{
cout<<q.top()<<' ';
q.pop();
}
cout << endl;
return 0;
}
输出:1 2 3 4 5
multiset
#include <iostream>
#include <functional>
#include <vector>
#include <list>
#include <stack>
#include <queue>
#include <set>
using namespace std;
int main(void)
{
multiset<int,greater<int> >s;//允许元素重复
s.insert(3);
s.insert(1);
s.insert(2);
s.insert(3);
for (multiset<int, greater<int> >::const_iterator it = s.begin(); it != s.end(); ++it)
{
cout << *it << ' ';
}
cout << endl;
return 0;
}
输出:3 3 2 1