map::max_size, map::clear, map::erase, und map::size
Veranschaulicht, wie Zuordnung::max_size,Zuordnung::freier Speicherplatz, Zuordnung::Löschen, und Funktionen Zuordnung::Größe Standardvorlagenbibliothek (STL) in Visual C++ verwendet.
size_type max_size( ) const;
void clear( ) const;
bool empty( ) const;
iterator erase(
iterator First,
iterator Last
);
size_type size( ) const;
A::reference operator[]( // A is the allocator
const Key& Key
);
iterator map::begin( );
iterator map::end( );
iterator map::find(
const Key& Key
);
Hinweise
Hinweis |
---|
Die Klasse/Parameternamen im Prototyp stimmen nicht mit der Version in der Headerdatei ab.Einige wurden geändert, um die Lesbarkeit zu verbessern. |
Im folgenden Beispiel wird eine Zuordnung von Zeichenfolges bis ints und füllt sie zuerst mit einer Zuordnung von Monatsnamen auf den Monat aus Zahlen und dann geleert und füllt sie mit entsprechendem Namen des Wochentags aus einer Karte zu ints.
Beispiel
// map_max_size_etc_sample.cpp
// compile with: /EHsc
//
// Functions: iterator map::max_size();
// void clear() const;
// bool empty() const;
// iterator erase(iterator first, iterator last);
// size_type size() const;
// A::reference operator[](const Key& key);
// iterator map::begin();
// iterator map::end();
// iterator map::find(const Key& key);
#pragma warning(disable:4786)
#include <iostream>
#include <string>
#include <map>
using namespace std ;
typedef map<string, int> STRING2INT;
int main()
{
STRING2INT MyMap;
STRING2INT::iterator MyIterator;
string MyBuffer;
// print the maximum number of <key,data> pairs that MyMap can hold
cout << "MyMap is capable of holding " << MyMap.max_size()
<< " <string,int> pairs" << endl;
if (!MyMap.empty())
cout << "MyMap has " << MyMap.size() << " entries" << endl;
else
cout << "MyMap is empty" << endl;
cout << "Entering new entries in MyMap" << endl;
// Fill in MyMap with the months of the year, mapped to their number
// January - 1, February - 2, etc. using operator[].
MyMap["January"] = 1;
MyMap["February"] = 2;
MyMap["March"] = 3;
MyMap["April"] = 4;
MyMap["May"] = 5;
MyMap["June"] = 6;
MyMap["July"] = 7;
MyMap["August"] = 8;
MyMap["September"] = 9;
MyMap["October"] = 10;
MyMap["November"] = 11;
MyMap["December"] = 12;
if (!MyMap.empty())
cout << "MyMap has " << MyMap.size() << " entries" << endl;
else
cout << "MyMap is empty" << endl;
// Ask the user for a month of the year and print the number
// that corresponds to the month entered
MyIterator = MyMap.end();
while (MyIterator == MyMap.end())
{
cout << endl << "Enter a Month: ";
cin >> MyBuffer;
if ((MyIterator = MyMap.find(MyBuffer)) != MyMap.end())
cout << (*MyIterator).first << " is Month Number "
<< (*MyIterator).second << endl;
else
cout << "Enter a Valid Month (example: March)" << endl;
}
// empty MyMap - note that clear simply calls erase(begin(),end());
MyMap.clear();
if (!MyMap.empty())
cout << "MyMap has " << MyMap.size() << " entries" << endl;
else
cout << "MyMap is empty" << endl;
cout << "Entering new entries in MyMap" << endl;
// Fill MyMap with the days of the week, each mapped to an int
MyMap["Monday"] = 1;
MyMap["Tuesday"] = 2;
MyMap["Wednesday"] = 3;
MyMap["Thursday"] = 4;
MyMap["Friday"] = 5;
MyMap["Saturday"] = 6;
MyMap["Sunday"] = 7;
if (!MyMap.empty())
cout << "MyMap has " << MyMap.size() << " entries" << endl;
else
cout << "MyMap is empty" << endl;
// Ask the user for a day of the week and print the number
// that corresponds to the day entered
MyIterator = MyMap.end();
while (MyIterator == MyMap.end())
{
cout << endl << "Enter a Day of the Week: ";
cin >> MyBuffer;
if ((MyIterator = MyMap.find(MyBuffer)) != MyMap.end())
cout << (*MyIterator).first << " is Day Number "
<< (*MyIterator).second << endl;
else
cout << "Enter a Valid Day of the Week(example: Monday)" << endl;
}
// Now clear MyMap again - this time using erase instead of clear
MyMap.erase(MyMap.begin(), MyMap.end());
if (!MyMap.empty())
cout << "MyMap has " << MyMap.size() << " entries" << endl;
else
cout << "MyMap is empty" << endl;
}
Eingabe
May
Monday
Beispielausgabe
MyMap is capable of holding 134217727 <string,int> pairs
MyMap is empty
Entering new entries in MyMap
MyMap has 12 entries
Enter a Month: May
May is Month Number 5
MyMap is empty
Entering new entries in MyMap
MyMap has 7 entries
Enter a Day of the Week: Monday
Monday is Day Number 1
MyMap is empty
Anforderungen
Header: <map>