ITPub博客

首页 > IT职业 > IT生活 > 入门计划->学用stl std::map (转)

入门计划->学用stl std::map (转)

原创 IT生活 作者:amyz 时间:2007-11-25 09:39:40 0 删除 编辑
入门计划->学用stl std::map (转)[@more@]

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

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

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

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

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

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

Win2k+VC6

redhat Linux 7.2 + gcc(g++)2.96

--源程序--

// strmap1.cpp // #pragma warning(disable:4786) //... #include #include //... #include using namespace std; class strmap1 { typedef std::map 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)" << 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)


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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-984540/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3984
  • 访问量
    7338861