Xaritalar ma'lum bir tartib bo'yicha kalit qiymat



Download 320,14 Kb.
Sana26.06.2022
Hajmi320,14 Kb.
#705500
Bog'liq
Map


Map
Xaritalar - ma'lum bir tartib bo'yicha kalit qiymat va xaritalangan qiymat birikmasidan hosil bo'lgan elementlarni saqlaydigan assotsiativ konteynerlar . Xaritada asosiy qiymatlar odatda elementlarni saralash va yagona aniqlash uchun ishlatiladi, xaritalangan qiymatlar esa

ushbu kalit bilan bog'langan tarkibni saqlaydi . Kalit va xaritalangan qiymat turlari farq qilishi mumkin va ular ikkalasini birlashtirgan juftlik turi bo'lgan value_type a'zolar turida birga guruhlangan :




typedef pair value_type;






Ichkarida, xaritadagi elementlar har doim uning ichki taqqoslash ob'ekti tomonidan ko'rsatilgan qat'iy zaif tartib mezoniga binoan kaliti bo'yicha tartiblanadi ( qiyoslash turi ). Xarita konteynerlari odatda unordered_map konteynerlariga qaraganda alohida elementlarga kalitlari orqali kirish uchun sekinroq , lekin ular tartibi asosida toʻgʻridan-toʻgʻri toʻplamlar boʻyicha iteratsiyaga ruxsat beradi. Xaritada koʻrsatilgan qiymatlarga qavs operatori (( operator[] ) yordamida tegishli kalit orqali toʻgʻridan-toʻgʻri kirish mumkin . Xaritalar odatda quyidagi tarzda amalga oshiriladi.


.


1.// map::begin/end
#include
#include


int main ()
{
std::map mymap;

mymap['b'] = 100;


mymap['a'] = 200;
mymap['c'] = 300;


// show content:
for (std::map::iterator it=mymap.begin(); it!=mymap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';


return 0;
}
2.// map::emplace
#include
#include


int main ()
{
std::map mymap;

mymap.emplace('x',100);


mymap.emplace('y',200);
mymap.emplace('z',100);

std::cout << "mymap contains:";


for (auto& x: mymap)
std::cout << " [" << x.first << ':' << x.second << ']';
std::cout << '\n';


return 0;
}


3.// map::insert (C++98)
#include
#include


int main ()
{
std::map mymap;


// first insert function version (single parameter):
mymap.insert ( std::pair('a',100) );
mymap.insert ( std::pair('z',200) );

std::pair::iterator,bool> ret;


ret = mymap.insert ( std::pair('z',500) );
if (ret.second==false) {
std::cout << "element 'z' already existed";
std::cout << " with a value of " << ret.first->second << '\n';
}


// second insert function version (with hint position):
std::map::iterator it = mymap.begin();
mymap.insert (it, std::pair('b',300)); // max efficiency inserting
mymap.insert (it, std::pair('c',400)); // no max efficiency inserting


// third insert function version (range insertion):
std::map anothermap;
anothermap.insert(mymap.begin(),mymap.find('c'));


// showing contents:
std::cout << "mymap contains:\n";
for (it=mymap.begin(); it!=mymap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';

std::cout << "anothermap contains:\n";


for (it=anothermap.begin(); it!=anothermap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';


return 0;
}
4.// swap maps
#include
#include


int main ()
{
std::map foo,bar;

foo['x']=100;


foo['y']=200;

bar['a']=11;


bar['b']=22;
bar['c']=33;

foo.swap(bar);


std::cout << "foo contains:\n";


for (std::map::iterator it=foo.begin(); it!=foo.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';

std::cout << "bar contains:\n";


for (std::map::iterator it=bar.begin(); it!=bar.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';


return 0;
}
5.// map::max_size
#include
#include


int main ()
{
int i;
std::map mymap;


if (mymap.max_size()>1000)
{
for (i=0; i<1000; i++) mymap[i]=0;
std::cout << "The map contains 1000 elements.\n";
}
else std::cout << "The map could not hold 1000 elements.\n";


return 0;
}

Download 320,14 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish