Void main(). string st[] = {"Petya K", "Ivanova N.M.",
{
int j, num;
string str;
map_s1 m1;
map_s1::iterator i;
string st[] = {"Petya K", "Ivanova N.M.",
"Vovochka", "Vasia"};
long nom[] = {741596 , 3856745, 230546, 745697};
for(j = 0; j < 4;j++)
m1[st[j]] = nom[j]; // Занесення в словник
map_s1 m2; // Створення порожнього словника
m2.insert(map_s1::value_type("Lena", 3157725));
str = "Anna";
num = 5536590;
m2.insert(make_pair(str, num));
num = 5530000;
// Спроба вставки існуючого запису
m2.insert(make_pair(str,num));
i = m1.begin();
// Вставка в m2 першого елементу словника m1
m2.insert(*i);
m2["Lena"] = 2222222; // Корегування елементу
// Виведення словника
for (i = m2.begin(); i != m2.end(); i++)
cout << (*i).first << " " << (*i).second << endl;
}
Результат роботи програми:
Anna 5536590
Ivanova N.M. 3856745
Lena 2222222
Друга форма функції insert застосовується для прискорення процесу вставки. З цією метою їй передається першим параметром позиція словника, починаючи з якої потрібно здійснювати пошук місця вставки. Вставка виконується тільки у разі відсутності значення х в словнику. Функція повертає ітератор на елемент словника з ключем, що міститься в х. Наприклад, якщо відомо, що елементи поміщатимуться в словник в порядку зростання, можна передавати першим параметром у функцію вставки позицію попереднього елементу (в цьому випадку час вставки є константою):
#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef map <string,long, less <string> > map_s1;
typedef pair <string, long > pair_sl;
Дата добавления: 2014-12-26; просмотров: 695;