📄 all.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <meta name="generator" content= "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org"> <title>C++ Maps</title> <link href="../cppreference.css" rel="stylesheet" type="text/css"></head><body><table> <tr> <td> <div class="body-content"> <div class="header-box"> <a href="../index.html">cppreference.com</a> > <a href= "index.html">C++ Maps</a> </div> <div class="name-format"> begin </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> iterator begin(); const_iterator begin() const;</pre> <p>The function begin() returns an iterator to the first element of the map. begin() should run in <a href="../complexity.html">constant time</a>.</p> <p>For example, the following code uses begin() to initialize an iterator that is used to traverse a list:</p> <pre class="example-code"> map<string,int> stringCounts; string str; while( cin >> str ) stringCounts[str]++; map<string,int>::iterator iter; for( iter = stringCounts.begin(); iter != stringCounts.end(); iter++ ) { cout << "word: " << iter->first << ", count: " << iter->second << endl; }</pre> <p>When given this input:</p> <pre class="example-code"> here are some words and here are some more words</pre> <p>...the above code generates this output:</p> <pre class="example-code"> word: and, count: 1 word: are, count: 2 word: here, count: 2 word: more, count: 1 word: some, count: 2 word: words, count: 2</pre> <div class="related-name-format"> Related topics: </div> <div class="related-content"> <a href="end.html">end</a><br> <a href="rbegin.html">rbegin</a><br> <a href="rend.html">rend</a> </div> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> clear </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> void clear();</pre> <p>The function clear() deletes all of the elements in the map. clear() runs in <a href="../complexity.html">linear time</a>.</p> <div class="related-name-format"> Related topics: </div> <div class="related-content"> <a href="erase.html">erase</a> </div> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> count </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> <strong>size_type</strong> count( const <a href="../containers.html">key_type</a>& key );</pre> <p>The function count() returns the number of occurrences of <em>key</em> in the map.</p> <p>count() should run in <a href="../complexity.html">logarithmic time</a>.</p> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> empty </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> bool empty() const;</pre> <p>The empty() function returns true if the map has no elements, false otherwise.</p> <p>For example, the following code uses empty() as the stopping condition on a <a href= "../keywords/while.html">while</a> loop to clear a map and display its contents in order:</p> <pre class="example-code"> struct strCmp { bool operator()( const char* s1, const char* s2 ) const { return strcmp( s1, s2 ) < 0; } }; ... map<const char*, int, strCmp> ages; ages["Homer"] = 38; ages["Marge"] = 37; ages["Lisa"] = 8; ages["Maggie"] = 1; ages["Bart"] = 11; while( !ages.empty() ) { cout << "Erasing: " << (*ages.begin()).first << ", " << (*ages.begin()).second << endl; ages.erase( ages.begin() ); }</pre> <p>When run, the above code displays:</p> <pre class="example-code"> Erasing: Bart, 11 Erasing: Homer, 38 Erasing: Lisa, 8 Erasing: Maggie, 1 Erasing: Marge, 37</pre> <div class="related-name-format"> Related topics: </div> <div class="related-content"> <a href="begin.html">begin</a><br> <a href="erase.html">erase</a><br> <a href="size.html">size</a> </div> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> end </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> iterator end(); const_iterator end() const;</pre> <p>The end() function returns an iterator just past the end of the map.</p> <p>Note that before you can access the last element of the map using an iterator that you get from a call to end(), you'll have to decrement the iterator first.</p> <p>For example, the following code uses <a href= "begin.html">begin</a>() and end() to iterate through all of the members of a vector:</p> <pre class="example-code"> vector<int> v1( 5, 789 ); vector<int>::iterator it; for( it = v1.begin(); it != v1.end(); it++ ) { cout << *it << endl; } </pre> <p>The iterator is initialized with a call to <a href= "begin.html">begin</a>(). After the body of the loop has been executed, the iterator is incremented and tested to see if it is equal to the result of calling end(). Since end() returns an iterator pointing to an element just after the last element of the vector, the loop will only stop once all of the elements of the vector have been displayed.</p> <p>end() runs in <a href="../complexity.html">constant time</a>.</p> <div class="related-name-format"> Related topics: </div> <div class="related-content"> <a href="begin.html">begin</a><br> <a href="rbegin.html">rbegin</a><br> <a href="rend.html">rend</a> </div> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> equal_range </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> pair<iterator, iterator> equal_range( const <a href="../containers.html">key_type</a>& key );</pre> <p>The function equal_range() returns two iterators - one to the first element that contains <em>key</em>, another to a point just after the last element that contains <em>key</em>.</p> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> erase </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> void erase( iterator pos ); void erase( iterator start, iterator end ); <strong>size_type</strong> erase( const <a href="../containers.html">key_type</a>& key );</pre> <p>The erase function() either erases the element at <em>pos</em>, erases the elements between <em>start</em> and <em>end</em>, or erases all elements that have the value of <em>key</em>.</p> <p>For example, the following code uses erase() in a <a href= "../keywords/while.html">while</a> loop to incrementally clear a map and display its contents in order:</p> <pre class="example-code"> struct strCmp { bool operator()( const char* s1, const char* s2 ) const { return strcmp( s1, s2 ) < 0; } }; ... map<const char*, int, strCmp> ages; ages["Homer"] = 38; ages["Marge"] = 37; ages["Lisa"] = 8; ages["Maggie"] = 1; ages["Bart"] = 11; while( !ages.empty() ) { cout << "Erasing: " << (*ages.begin()).first << ", " << (*ages.begin()).second << endl; ages.erase( ages.begin() ); }</pre> <p>When run, the above code displays:</p> <pre class="example-code"> Erasing: Bart, 11 Erasing: Homer, 38 Erasing: Lisa, 8 Erasing: Maggie, 1 Erasing: Marge, 37</pre> <div class="related-name-format"> Related topics: </div> <div class="related-content"> <a href="begin.html">begin</a><br> <a href="clear.html">clear</a><br> <a href="empty.html">empty</a><br> <a href="size.html">size</a> </div> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> find </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> iterator find( const <a href="../containers.html">key_type</a>& key );</pre> <p>The find() function returns an iterator to <em>key</em>, or an iterator to the end of the map if <em>key</em> is not found.</p> <p>find() runs in <a href="../complexity.html">logarithmic time</a>.</p> <p>For example, the following code uses the find() function to determine how many times a user entered a certain word:</p> <pre class="example-code"> map<string,int> stringCounts; string str; while( cin >> str ) stringCounts[str]++; map<string,int>::iterator iter = stringCounts.find("spoon"); if( iter != stringCounts.end() ) { cout << "You typed '" << iter->first << "' " << iter->second << " time(s)" << endl; }</pre> <p>When run with this input:</p> <pre class="example-code">my spoon is too big. my spoon is TOO big! my SPOON is TOO big! I am a BANANA!</pre> <p>...the above code produces this output:</p> <pre class="example-code">You typed 'spoon' 2 time(s)</pre> </div> </td> </tr> </table></body></html><hr> <div class="name-format"> insert </div> <div class="syntax-name-format"> Syntax: </div> <pre class="syntax-box"> #include <map> iterator insert( iterator i, const <a href="../containers.html">TYPE</a>& pair ); void insert( <a href="../iterators.html">input_iterator</a> start, <a href="../iterators.html">input_iterator</a> end ); pair<iterator,bool> insert( const <a href="../containers.html">TYPE</a>& pair );</pre> <p>The function insert() either:</p> <ul> <li>inserts <em>pair</em> after the element at <em>pos</em> (where <em>pos</em> is really just a suggestion as to where <em>pair</em> should go, since sets and maps are ordered), and returns an iterator to that element.</li> <li>inserts a range of elements from <em>start</em> to <em>end</em>.</li> <li>inserts <em>pair</em><<em>key</em>,<em>val</em>>, but only if no element with key <em>key</em> already exists. The return value is an iterator to the element inserted (or an existing pair with key <em>key</em>), and a boolean which is true if an insertion took place.</li> </ul> <p>For example, the following code uses the insert() function (along with the make_pair() function) to insert some data into a map and then displays that data:</p> <pre class="example-code"> map<string,int> theMap; theMap.insert( make_pair( "Key 1", -1 ) ); theMap.insert( make_pair( "Another key!", 32 ) ); theMap.insert( make_pair( "Key the Three", 66667 ) ); map<string,int>::iterator iter; for( iter = theMap.begin(); iter != theMap.end(); ++iter ) { cout << "Key: '" << iter->first << "', Value: " << iter->second << endl; }</pre> <p>When run, the above code displays this output:</p> <pre class="example-code"> Key: 'Another key!', Value: 32 Key: 'Key 1', Value: -1 Key: 'Key the Three', Value: 66667</pre> <p>Note that because maps are sorted containers, the output is sorted by the key value. In this case, since the map key data type is <a href="../cppstring/index.html">string</a>, the map is sorted alphabetically by key.</p> <div class="related-name-format"> Related topics: </div> <div class="related-content"> <a href="map_operators.html">Map operators</a> </div> </div>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -