STL:map

#首先包含头文件:

#include <map>

using namespacestd;//需要使用该命名空间

 

#然后定义对象:

map<int,CString>m_student;//int为学号,CString为姓名

map中包含两个值,即<key,value>key是指关键字,用于索引;value是指所求的值。

其中,key是唯一的,在同一个map对象中不可能出现两个key值相同的记录

 

#向对象中添加数据:

m_student[0711712034] = 化石鱼;

注意map对象是不需要事先分配空间的。直接用m_student[key] =value的形式即可为map对象添加一条索引记录。

注意若不给定初值,则会使用默认初值为map对象赋值。因此查找需要使用count()find(),而不要使用[]来查找。例如要查找一个学号为1234567890的学生姓名,但map中并没有该学号,如果直接使用CStringname = m_student[1234567890],会使用默认初值NULL作为学号1234567890的对应值,并将(1234567890,NULL)作为一条新纪录添加进来。

 

#然后可以像数组一样使用该对象的数据:

CString name = m_student[0711712034];

 

#获取第一个元素:(序列允许为空。若序列为空,则指向序列末端的下一个位置)。注意这里返回的并非是value,而是一个iterator

m_student.begin();

 

#获取最后一个元素:(序列不允许为空)。注意这里返回的并非是value,而是一个iterator

m_student.back();

 

#获取最后一个元素的下一个位置:(序列是否为空无影响)。注意这里返回的并非是value,而是一个iterator

m_student.end();

 

#判断序列是否为空:

m_student.empty();//若为空返回true,否则返回false

 

#判断某个关键字是否存在

m_student.count(key);//若存在返回1,若不存在返回0

返回值只可能是0或1。因为key是唯一的。所以key要么存在要么不存在,不可能存在多个。

 

#查找某个关键字

m_student.find(key);

返回值为迭代器iterator。若没有查找到,则返回m_student.end()

 

#删除某个对象:

m_student.eraser(key);//通过关键字删除

m_student.eraser(iterator);//通过迭代器删除

如:

m_student.eraser(0711712000);

m_student.eraser(m_student.begin());

m_student.eraser(m_student.find(0711712000));

 

#最后在析构函数中清空map对象:

ConvexShell::~ConvexShell(void)

{

     m_student.clear();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值