[ ] операциясы анықталған:
Т & operator[](const Key & х); Бұл операцияның көмегімен элементтердің мəнін алып қана қоймай, соны-
мен қатар сөздікке жаңа мəндерді қосуға болады. Дəстүрлерден бас тартпай,
сөздікке мысал ретінде телефондық кітапшаны келтірейік, мұнда кілт ретінде
адамдардың тегі, ал элемент ретінде олардың телефон нөмірі алынады:
#include #include #include #include typedef map > map_sl; // 1 int main(){ map_sl m1; ifstream in("phonebook"); string str; long num; while (in >> num, !in.eof()){ // Нөмірді оқу in.get(); // Бос орынды қалдыру getline(in, str); // Тегін оқу m1[str] = num; // Сөздікке енгізу cout << str << " " << num << endl; } m1["Petya P."] = 2134622; // Сөздікті толықтыру map_sl :: iterator i; cout << "m1:" << endl; // Сөздікті шығару
344 for (i = m1.begin(); i != m1.end(); i++) cout << (*i).fi rst << " " << (*i).second << endl; i = m1.begin(); i++; // Екінші элементті шығару cout << "Екінші элемент: "; cout << (*i).fi rst << " " << (*i).second << endl; cout << "Vasia: " << m1["Vasia"] << endl; // Элементті кілті бойынша шығару return 0; } Программаның оқылуын жақсарту үшін сөздік типінің қысқаша белгіленуі
енгізілген (
// 1 түрінде белгіленген оператор). Əрбір адам туралы мəліметтер
phonebook файлының бір жолында орналасқан: алдымен телефон нөмірі,
одан кейін бос орын арқылы адамның аты-жөні жазылады:
1001002 Petya К. 3563398 Ivanova N.M. 1180316 Vovochka 2334476 Vasia Сөздіктің итераторлары үшін инкремент жəне декремент операцияларын
қолдануға болады, бірақ
+ жəне
– операцияларына тыйым салынған. Төменде
программа жұмысының нəтижиесі көрсетілген (сөздіктің сұрыпталып реттел-
ген түрде шығарылатынына назар аударыңыз):
Petya K. 1001002 Ivanova N.M. 3563398 Vovochka 1180316 Vasia 2334476 m1: Ivanova N.M. 3563398 Petya K. 1001002 Petya P. 2134622 Vasia 2334476 Vovochka 1180316 Екінші элемент: Petya K. 1001002 Vasia: 2334476 Сөздікте элементтерді іздеу үшін төмендегі функциялар анықталған:
iterator fi nd(const key_type& x); const_iterator fi nd(const key_type& x) const; iterator lower_bound(const key_type& x); const_iterator lower_bound(const key_type& x) const; iterator upper_bound(const key_type& x); const_iterator upper_bound(const key_type &x) const; size_type count(const key_type& x) const;
345 Іздеу сəтті орындалған жағдайда
fi nd функциясы табылған элементке ите-
раторды немесе кері жағдайда
end() мəнін қайтарады.
Келесі