C++ STL的set是有序的,一般背后是红黑树的实现。 输出会从小到大。 #include <iostream> #include <set> using namespace std; int main() { int a[]={1,2,5,9,6,4}; int len=sizeof(a)/sizeof(int); set<int> s(a,a+len); for(set<int>::iterator i=s.begin();i!=s.end();i++) cout<<*i<<" "; return 0; } 输出 1 2 4 5 6 9 无序的set如今已经被加入ISO C++2011标准中 unordered_set<int> a; 字符串能够用 set<string> a;//C++的字符串 set<char *> a;//C式0结尾的字符串 STL的queue队列一般用heap堆实现的。能够做为堆使用。 堆具备最大最小极向性,multiset,multimap不能用来代替堆