STL map 一般操作

来源:互联网 发布:淘宝页头 编辑:程序博客网 时间:2024/05/21 10:47




#include <iostream>#include <string>#include <map>using namespace std;typedef map<string, int>::iterator iter_t;typedef map<string, int>::reverse_iterator r_iter_t;int main() {    map<string, int> test;    test["2+4"] = 6;    test["1+2"] = 3;    if (test["1+3"] == 0) ;    pair<iter_t, bool> ret;    // insert(map<string, int>::value_type())    ret = test.insert(pair<string, int>("1+4", 5));    printf("%d\n", ret.second);    ret = test.insert(pair<string, int>("1+3", 5));    printf("%d\n", ret.second);        iter_t f = test.find("1+4");    //C++11 The other versions return an iterator to the element that follows     // the last element removed    //C++98 void erase (iterator first, iterator last);    if (f != test.end()) {        test.erase(f);        printf("%s : %d\n", f->first.c_str(), f->second);    }    test.erase(test.find("1+3"), test.end());    f = test.find("1+1");    if (f == test.end()) {        test.insert(pair<string, int>("1+1", 2));    }    printf("size: %d\n", (int)test.size());    // cbegin&cend return const_iterator        printf("---------------------------\n");    for (iter_t i = test.begin() ; i != test.end() ; ++i) {        printf("%s %d\n", i->first.c_str(), i->second);    }    printf("---------------------------\n");    for (r_iter_t i = test.rbegin() ; i != test.rend() ; ++i) {        printf("%s %d\n", i->first.c_str(), i->second);    }    printf("---------------------------\n");    test.clear();    printf("size: %d\n", (int)test.size());    return 0;}



0 0