1.vector
(1)逆序
#include <string.h>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
vector<int>obj;
obj.push_back(1);
obj.push_back(3);
obj.push_back(0);
sort(obj.begin(), obj.end());//从小到大
cout << "从小到大:" << endl;
for (int i = 0; i < obj.size(); i++)
{
cout << obj[i] << ",";
}
cout << "\n" << endl;
cout << "从大到小:" << endl;
reverse(obj.begin(), obj.end());//从大到小
for (int i = 0; i < obj.size(); i++)
{
cout << obj[i] << ",";
}
getchar();
return 0;
}
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
typedef long long ll;
using namespace std;
bool cmp(int a, int b) {
return a > b;
}
int main()
{
cout << "VECTOR" << endl;
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
sort(v.begin(), v.end(), cmp);
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << endl;
}
getchar();
}
2.set
(1)逆序
#include <iostream>
#include <algorithm>
#include <string>
#include <set>
using namespace std;
int main()
{
set<int, greater<int> > s;
s.insert(1);
s.insert(2);
s.insert(3);
s.insert(4);
cout << "SET" << endl;
for (set<int>::iterator it = s.begin(); it != s.end(); it++) {
cout << *it << endl;
}
getchar();
}
3.map
(1)key值,逆序
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
using namespace std;
int main()
{
cout << "MAP" << endl;
map<char, int, greater<char> > m;
m['c'] = 1;
m['b'] = 2;
m['a'] = 3;
for (map<char, int>::iterator it = m.begin(); it != m.end(); it++) {
cout << it->first << " " << it->second << endl;
}
getchar();
}
(2)key值,自定义排序
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
struct CmpByKeyLength {
bool operator()(const string& k1, const string& k2)const {
return k1.length() < k2.length();
}
};
int main()
{
//1、map这里指定less作为其默认比较函数(对象),就是默认按键值升序排列
// map<string, int> name_score_map;
// 2、可以自定义,按照键值升序排列,注意加载
// #include <functional> // std::greater
// map<string, int, greater<string>> name_score_map;
//3、按照自定义内容进行排序,比如字符串的长度
map<string, int, CmpByKeyLength> name_score_map;
name_score_map["LiMin"] = 90;
name_score_map["ZiLinMi"] = 79;
name_score_map["BoB"] = 92;
name_score_map.insert(make_pair("Bing", 99));
name_score_map.insert(make_pair("Albert", 86));
map<string, int>::iterator iter;
for (iter = name_score_map.begin(); iter != name_score_map.end(); ++iter) {
cout << (*iter).first << endl;
}
system("pause");
return 0;
}
(3)value,排序
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
#include<vector>
using namespace std;
bool cmp(const pair<string, int>& a, const pair<string, int>& b) {
return a.second < b.second;
}
int main()
{
//1、map这里指定less作为其默认比较函数(对象),就是默认按键值升序排列
map<string, int> name_score_map;
name_score_map["LiMin"] = 90;
name_score_map["ZiLinMi"] = 79;
name_score_map["BoB"] = 92;
name_score_map.insert(make_pair("Bing", 99));
name_score_map.insert(make_pair("Albert", 86));
//输出添加的内容
map<string, int>::iterator iter;
for (iter = name_score_map.begin(); iter != name_score_map.end(); ++iter) {
cout << (*iter).first << ":" << (*iter).second << endl;
}
cout << endl;
// 将map中的内容转存到vector中
vector<pair<string, int>> vec(name_score_map.begin(), name_score_map.end());
//对线性的vector进行排序
sort(vec.begin(), vec.end(), cmp);
for (int i = 0; i < vec.size(); ++i)
cout << vec[i].first << ":" << vec[i].second << endl;
system("pause");
return 0;
}