入门计划->学用stl std::map<std::string, int>

C++:一种比较流行的强大功能面向对象编程语言,应用和前景都很广阔。

stl:C++标准模板库,功能极其强大,将其完全掌握后C++编程会相当容易。

map:一种关系式容器,可以根据关键字匹配多种数据。

string:"~!@#$%^&*()_+",这样的东东就是。

以下程序代码将简单演示如何通过名称(string)关键字匹配id(int),由于程式(程序,受网上资料的影响,偶也开始想把程序说成程式,废话)太简单,没有写注释,对于想入门的朋友将代码看明白可以自己举一反三就算学会一招了:)高手请跳过。

程序在以下环境顺利测试通过:

WIN2K+VC6

RedHat Linux 7.2 + gcc(g++)2.96

--源程序--

// strmap1.cpp
//

#pragma warning(disable:4786)
//...
#include <map> 
#include <string> 
//...
#include <iostream>
using namespace std;

class strmap1
{
    typedef std::map<std::string, int> type_map;
    typedef type_map::iterator type_iter;

    type_map    mm;
    type_iter   it;
    int         id;

public:
    strmap1() : it(NULL), id(0)
    {
        //init
        id = 0;
        mm["i"] = ++id;
        mm["you"] = ++id;
        mm["he"] = ++id;
    }

    int find(const char* s)
    {
        cout << "find " << s << endl;
        int ret = 0;
        it = mm.find(s);
        if (mm.end() != it) {
            ret = it->second;
            cout << s << "'s id is " << ret << endl;
        } else {
            cout << "can't find " << s << "'s id" << endl;
        }
        return ret;
    }

    int insert(const char* s)
    {
        cout << "insert " << s << endl;
        int ret = ++id;
        mm.insert(type_map::value_type(s, ret));
        //mm[s] = ret;//ok
        return ret;
    }

    void remove(const char* s)
    {
        cout << "remove " << s << endl;
        mm.erase(s);
    }
};

int main(int argc, char* argv[])
{
    cout << "(strmap1)string map 1(simple use std::map<string, int>)" << endl;
    strmap1 o;

    cout << endl;
    o.find("i");
    
    cout << endl;
    o.find("she");
    
    cout << endl;
    o.find("you");
    o.find("he");

    cout << endl;
    o.insert("she");
    o.remove("you");
    o.remove("he");
    
    cout << endl;
    o.find("you");
    o.find("he");
    o.find("she");
    
    cout << endl;
    cout << "haha~~~now only i and she" << endl;
    return 0;
} 

--输出结果--
(strmap1)string map 1(simple use std::map<string, int>)
find i
i's id is 1
find she
can't find she's id
find you
you's id is 2
find he
he's id is 3
insert she
remove you
remove he
find you
can't find you's id
find he
can't find he's id
find she
she's id is 4
haha~~~now only i and she
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值