1. 遍历 map,unordered_map
// 遍历之后返回的自动类型是一个pair,注意此处map的话返回有顺序的,而unordered_map 没有顺序
map<int, char> Map;
for (auto & element : Map){
printf("%d, %c\n", element.first, element.second);
}
2. varibale 数据类型的快速转换
char -> int
string a = '1';
int b = a - '0';
int -> string
int a = 12345;
string b = to_string(a);
3. 初始化固定维度的 vector<vector<\int>>
vector<vector<int>> A(m, vector<int>(n, 0))
4. vector 容器的几种访问方式(包括逆序访问)
for (vector<int> :: iterator cur = input.begin(); cur != input.end(); cur++){
cout << (*cur) << " " ;
}
cout << endl;
for (int i = 0; i < input.size(); i++){
cout << input[i] << " ";
}
cout << endl;
for (auto element : input){
cout << element << " ";
}
// 逆序访问
#include <algorithm>
reverse(input.begin(), input.end());
// 之后可以利用上述方法进行访问
// 举几个例子:
string str="hello world , hi";
reverse(str.begin(),str.end());//str结果为 ih , dlrow olleh
vector<int> v = {5,4,3,2,1};
reverse(v.begin(),v.end());//容器v的值变为1,2,3,4,5
}
5. vector 的排序
// c++中vector的排序函数:sort()
int s[] = {1,6,3,2,5};
vector<int> vec(s, s+5);
//正向排序:按照从小到大的顺序排序
sort(vec.begin(), vec.end());
for(vector<int>::iterator it=vec.begin(); it!=vec.end(); it++){
cout<<*it<<" ";
}
cout<<endl;
//逆向排序:按照从大到小的顺序进行排序
// 两种方式
//sort(vec.rbegin(), vec.rend());
sort(vec.begin(), vec.end());
reverse(vec.begin(), vec.end())
for(vector<int>::iterator it=vec.begin(); it!=vec.end(); it++){
cout<<*it<<" ";
}
cout<<endl;
6. 返回vector中的最大和最小值
# include<iostream>
# include<algorithm>
# include<vector>
using namespace std;
int main() {
vector<int> temp{ 10,20,98,1,-3,111 };
int max = *max_element(temp.begin(), temp.end());
int min = *min_element(temp.begin(), temp.end());
cout << "max element: " << max << endl;
cout << "min element: " << min << endl;
}
7. 根据ordered_map 中的value进行排序
// 降序,如果改为升序只需 a.second > b.second
sort(answer_temp.begin(), answer_temp.end(),
[=] (pair<int, int>& a, pair<int, int>& b) { return a.second > b.second; });
map 默认根据 key 值进行排序。
vector<pair<int,int>> 直接进行排序,默认根据 key 值进行排序。