Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»


[ ] операциясы анықталған: Т & operator[](const Key & х)



Pdf көрінісі
бет315/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   311   312   313   314   315   316   317   318   ...   465
[ ]
операциясы анықталған:
Т & operator[](const Key & х);
Бұл операцияның көмегімен элементтердің мəнін алып қана қоймай, соны-
мен қатар сөздікке жаңа мəндерді қосуға болады. Дəстүрлерден бас тартпай, 
сөздікке мысал ретінде телефондық кітапшаны келтірейік, мұнда кілт ретінде 
адамдардың тегі, ал элемент ретінде олардың телефон нөмірі алынады:
#include
#include  
#include  
#include using namespace std;
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()
мəнін қайтарады.
Келесі 


Достарыңызбен бөлісу:
1   ...   311   312   313   314   315   316   317   318   ...   465




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет