Сопоставление в программе стандартной библиотеки шаблонов (STL) C++
Чтобы создать карту
map<int,int> variable;
map<int, char> m = {{1, ‘a’}, {3, ‘b’}, {5, ‘c’}, {7, ‘d’}};
variable.insert(pair <int, int> (1, 40));
variable[3] = 10;
Чтобы назначить или инициализировать
variable[4] = 40; int num = variable2.erase (4); cout<<num; // output: 40
Чтобы проверить, присутствует ли ключ на карте или нет
if ( m.find(“f”) == m.end() ) {
// not found
} else {
// found
}
Итерация
map <int, int> :: iterator itr;
for (itr = variable.begin(); itr != variable.end(); ++itr)
{
cout << ‘\t’ << itr->first
<< ‘\t’ << itr->second << ‘\n’;
}
Чтобы найти нижнюю и верхнюю границу
variable.lower_bound(2)->first; variable.lower_bound(2)->second; variable.upper_bound(2)->first; variable.upper_bound(2)->second;
Чтобы скопировать одну карту на другую
map <int, int> variable2(variable.begin(), variable.end()); variable2 = variable;
Образец программы — Чтобы найти частоту ввода списка чисел.
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
string st;
int temp,max=0;
map<string, int> m;
while(cin>>st)
{
if ( m.find(st) == m.end() ) {
// not found
m.insert(pair <string, int> (st, 1));
}
else {
// found
temp=m.lower_bound(st)->second;
temp++;
m[st]=temp;
if(temp>max)
max=temp;
}
}
cout<<max;
return 0;
}