STL map 一般操作




#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;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值