map::insert, map::find, 和 map::end
說明如何使用 map::insert, map::find,和 map::end Visual C++ 標準樣板程式庫 (STL) 函式。
iterator map::end( );
iterator map::find(
const Key& Key
);
pair<iterator, bool>
map::insert(
const value_type& x
);
備註
注意事項 |
---|
在原型中的類別/參數名稱不相符的標頭檔中的版本。某些已修改以提高可讀性。 |
結束函式會傳回 iterator 指向其中一個序列的結尾。 找出 傳回 iterator,指派第一個元素的排序索引鍵等於 機碼。 如果沒有這類項目存在,要等於 iterator 結束。 如果機碼不存在, 插入會將其新增至序列,並傳回pair<iterator, ,則為 true>。 如果機碼已經存在, 插入不會將它加入序列,並傳回pair <iterator, ,則為 false>。 下列範例會建立一個對應的ints 轉換成字串s。 如此一來,對應是數字從其字串等式 (1-> "1",2-> "2",依此類推)。 程式讀取來自使用者的數量、 尋找 (使用 [地圖]),每個位數的對等的文字和列印數字傳回作為一系列的文字。 比方說,如果使用者輸入 25463,程式會回應與: 兩個五個四個 6 個三。
範例
// map_insert_find_end.cpp
// compile with: /EHsc
#pragma warning(disable:4786)
#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef map<int, string, less<int> > INT2STRING;
int main()
{
// 1. Create a map of ints to strings
INT2STRING theMap;
INT2STRING::iterator theIterator;
string theString = "";
unsigned int index;
// Fill it with the digits 0 - 9, each mapped to its string counterpart
// Note: value_type is a pair for maps...
theMap.insert(INT2STRING::value_type(0,"Zero"));
theMap.insert(INT2STRING::value_type(1,"One"));
theMap.insert(INT2STRING::value_type(2,"Two"));
theMap.insert(INT2STRING::value_type(3,"Three"));
theMap.insert(INT2STRING::value_type(4,"Four"));
theMap.insert(INT2STRING::value_type(5,"Five"));
theMap.insert(INT2STRING::value_type(6,"Six"));
theMap.insert(INT2STRING::value_type(7,"Seven"));
theMap.insert(INT2STRING::value_type(8,"Eight"));
theMap.insert(INT2STRING::value_type(9,"Nine"));
// Read a Number from the user and print it back as words
for( ; ; )
{
cout << "Enter \"q\" to quit, or enter a Number: ";
cin >> theString;
if (theString == "q")
break;
// extract each digit from the string, find its corresponding
// entry in the map (the word equivalent) and print it
for (index = 0; index < theString.length(); index++)
{
theIterator = theMap.find(theString[index] - '0');
if (theIterator != theMap.end() ) // is 0 - 9
cout << (*theIterator).second << " ";
else // some character other than 0 - 9
cout << "[err] ";
}
cout << endl;
}
}
輸入
12
q
範例輸出
Enter "q" to quit, or enter a Number: 12
One Two
Enter "q" to quit, or enter a Number: q
需求
標頭: <map>