天天看點

map

//map是一個存儲鍵值對的容器,也是一個雙向連結清單

#include <iostream>

using namespace std;

#include <map>

int main(int argc, const char * argv[])

{

    map<int, string> maplive;

    maplive.insert(pair<int,string>(110,"April1"));

    maplive.insert(map<int,string>::value_type(111,"April2"));

    maplive[112] = "April3";

    map<int,string>::iterator l_it,l_it2;

    int i = maplive.size();

    for (l_it = maplive.begin(); l_it != maplive.end(); ) {

        if (l_it->first == 110) {

            l_it2 = l_it;

            l_it2++;

            maplive.erase(l_it);

            l_it = l_it2;

        }

        else

            l_it++;

    }

    //列印

    for (l_it = maplive.begin(); l_it != maplive.end();l_it++) {

        cout << l_it -> second << endl;     //取值是second,取key是first

    return 0;

}

C++ Maps是一種關聯式容器,包含“關鍵字/值”對。

C++ Multimaps和maps很相似,但是MultiMaps允許重複的元素。 1.begin() 傳回指向map頭部的疊代器

2.clear() 删除所有元素

3.count() 傳回指定元素出現的次數

文法:

size_type count( const KEY_TYPE &key ); //傳回map中鍵值等于key的元素的個數

4.empty() 如果map為空則傳回true 5.end() 傳回指向map末尾的疊代器 6.equal_range() 傳回特殊條目的疊代器對

pair equal_range( const KEY_TYPE &key ); 傳回兩個疊代器,指向第一個鍵值為key的元素和指向最後一個鍵值為key的元素

7.erase() 删除一個元素 文法:

void erase( iterator i ); //删除i元素

void erase( iterator start, iterator end ); //删除從start開始到end(不包括end)結束的元素 size_type erase( const key_type &key ); //删除等于key值的所有元素(傳回被删除的元素的個數)

8.find() 查找一個元素 文法:

iterator find( const key_type &key );

11

//查找等于key值的元素,并傳回指向該元素的疊代器;

//如果沒有找到,傳回指向集合最後一個元素的疊代器. 9.get_allocator() 傳回map的配置器

10.insert() 插入元素

iterator insert( iterator pos, const pair<KEY_TYPE,VALUE_TYPE> &val ); //插入val到pos的後面,然後傳回一個指向這個元素的疊代器

void insert( input_iterator start, input_iterator end );

//插入start到end的元素到map中

pair<iterator, bool> insert( const pair<KEY_TYPE,VALUE_TYPE> &val ); //隻有在val不存在時插入val。傳回指向被插入元素的疊代器和描述是否插入的bool值

11.key_comp() 傳回比較元素key的函數 文法:

key_compare key_comp();

//傳回一個用于元素間值比較的函數對象 12.lower_bound() 傳回鍵值>=給定元素的第一個位置

iterator lower_bound( const key_type &key ); //傳回一個指向大于或者等于key值的第一個元素的疊代器

13.max_size() 傳回可以容納的最大元素個數 14.rbegin() 傳回一個指向map尾部的逆向疊代器 15.rend() 傳回一個指向map頭部的逆向疊代器 16.size() 傳回map中元素的個數

17.swap() 交換兩個map 文法:

void swap( map &obj );

//swap()交換obj和現map中的元素

18.upper_bound() 傳回鍵值>給定元素的第一個位置

iterator upwer_bound( const key_type &key ); //傳回一個指向大于key值的第一個元素的疊代器

19.value_comp() 傳回比較元素value的函數 文法:

value_compare value_comp(); //傳回一個用于比較元素value的函數 

本文轉自蓬萊仙羽51CTO部落格,原文連結:http://blog.51cto.com/dingxiaowei/1366452,如需轉載請自行聯系原作者

繼續閱讀