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