码迷,mamicode.com
首页 > 编程语言 > 详细

C++ Primer 学习笔记_10_标准模板库_map和set的对比

时间:2015-07-17 09:45:42      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:c++   stl   

C++ Primer 学习笔记_10_标准模板库_map和set的对比

 

set

multiset

创建

set<int> str

multiset<string> str

插入

str.insert(8)

str.insert(“abc”)

遍历

set<int>::iterator iter

multiset< string >::iterator iter

输出

*iter

*iter

删除

n = str.erase(8)

删除个数只能是01

n = str.erase(“123”)

erase()返回删除元素的个数

清空

str.clear()

str.clear()

当前容量

str.size()

str.size()

查找

iter = str.find()

没有找到,返回str.end()

iter = str.find()

没有找到,返回str.end()

非结构体比较函数

struct myComp

{

  bool operator()(int a, int b)

{

return a > b;

}

}

 

定义:set<int, myComp> str

struct myComp

{

    bool operator()(string a, string b)

    {

       return a > b;

    }

};

multiset<string, myComp> str

结构体比较函数

(如果要由小到大排序,使用”>”号即可)

struct Info

{

  string name;

  float score;

  bool operator < (Info a) const

  {

    return a.score < score;

  }

}

struct Info

{

  string name;

  float score;

  bool operator < (Info a) const

  {

    return a.score < score;

  }

};

 

 

 

 

 

map

multimap

创建

map<string, float> str

multimap<string, double> str

插入

str[“Jack”] = 98.5

str.insert(pair<string, double>("Jack", 400))

遍历

map<string, float>::iterator iter

multiset<string, double>::iterator iter

输出

(*iter).first

(*iter).second

(*iter).first

(*iter).second

删除

n = str.erase(“Jack”)

删除个数,只能是01

n = str.erase(“Jack”)

erase()返回删除元素的个数

清空

str.clear()

str.clear()

当前容量

str.size()

str.size()

查找

iter = str.find()

没有找到,返回str.end()

iter = str.find()

没有找到,返回str.end()

非结构体比较函数

struct myComp

{

  bool operator()(int a, int b)

{

return a > b;

}

}

 

定义:set<int, char, myComp> str

struct myComp

{

  bool operator()(string a, string b)

{

return a > b;

}

}

 

定义:set< string, double, myComp> str

结构体比较函数

(如果要由小到大排序,使用”>”号即可)

struct Info

{

  string name;

  float score;

  bool operator < (Info a) const

  {

    return a.score < score;

  }

}

struct Info

{

  string name;

  float score;

  bool operator < (Info a) const

  {

    return a.score < score;

  }

}

 

 

参考 :

《C++ primer 第四版》

《ACM程序设计》



版权声明:本文为博主原创文章,未经博主允许不得转载。

C++ Primer 学习笔记_10_标准模板库_map和set的对比

标签:c++   stl   

原文地址:http://blog.csdn.net/keyyuanxin/article/details/46922431

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!