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

类别:编程语言 点击:0 评论:0 推荐:

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

本文地址:http://com.8s8s.com/it/it29120.htm