您的位置:首页 > 其它

STL中map的使用

2014-03-05 18:33 253 查看
#include <iostream>
#include <map>
using namespace std;

class Student
{
public:
string name;
int age;
string id;
public:
Student(string n, int a, string i):name(n),age(a),id(i){}
/* 作为map中的key,必须可以比较大小 */
friend bool operator < (const Student & s1, const Student & s2)
{
return s1.id.compare(s2.id) < 0;
}
};

int main(int argc, char ** argv)
{
Student s1("tianbei", 19, "1143111147");
Student s2("zhangruoyu", 19, "1143111146");
Student s3("qizhenghao", 19, "1143111145");

map<Student, int> sMap;
/* 插入元素 */
sMap.insert(std::make_pair(s1, 19));
sMap.insert(std::make_pair(s2, 59));
sMap.insert(std::make_pair(s3, 59));
/* 删除元素 */
map<Student, int>::iterator iter = sMap.begin();
for(; iter != sMap.end() ;)
{
if(iter->first.id.compare("1143111147") == 0)
sMap.erase(iter++);
else
iter++;
}
/* 循环输出内容 */
for(iter = sMap.begin(); iter != sMap.end(); iter++)
{
Student s = iter->first;
cout << s.name.c_str() << " " << s.id.c_str() << " " << s.age << " " << iter->second << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: