共用方式為


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>

請參閱

概念

標準樣板程式庫範例