personnel;这样就定义了⼀个⽤int作为索引,并拥有相关联的指向string的指针.
*********我感觉 关键就是这个 定义 时注意 配置好 索引 个指针。这个对于后⾯快速查找有很⼤关系。**************5、查找并获取map中的元素
下标操作符给出了获得⼀个值的最简单⽅法:CString tmp = enumMap[2];
但是,只有当map中有这个键的实例时才对,否则会⾃动插⼊⼀个实例,值为初始化值。我们可以使⽤Find()和Count()⽅法来发现⼀个键是否存在。
查找map中是否包含某个关键字条⽬⽤find()⽅法,传⼊的参数是要查找的key,在这⾥需要提到的是begin()和end()两个成员,分别代表map对象中第⼀个条⽬和最后⼀个条⽬,这两个数据的类型是iterator.int nFindKey = 2; //要查找的Key//定义⼀个条⽬变量(实际是指针)
UDT_MAP_INT_CSTRING::iterator it= enumMap.find(nFindKey);if(it == enumMap.end()) {//没找到}else {//找到}
通过map对象的⽅法获取的iterator数据类型是⼀个std::pair对象,包括两个数据 iterator->first 和 iterator->second 分别代表关键字和存储的数据
6、从map中删除元素
移除某个map中某个条⽬⽤erase()该成员⽅法的定义如下
iterator erase(iterator it); //通过⼀个条⽬对象删除iterator erase(iterator first, iterator last); //删除⼀个范围size_type erase(const Key& key); //通过关键字删除
clear()就相当于 enumMap.erase(enumMap.begin(), enumMap.end());
7 map的基本操作函数:
C++ Maps是⼀种关联式容器,包含“关键字/值”对 begin() 返回指向map头部的迭代器 clear() 删除所有元素
count() 返回指定元素出现的次数 empty() 如果map为空则返回true end() 返回指向map末尾的迭代器 equal_range() 返回特殊条⽬的迭代器对 erase() 删除⼀个元素 find() 查找⼀个元素 get_allocator() 返回map的配置器 insert() 插⼊元素
key_comp() 返回⽐较元素key的函数
lower_bound() 返回键值>=给定元素的第⼀个位置 max_size() 返回可以容纳的最⼤元素个数 rbegin() 返回⼀个指向map尾部的逆向迭代器 rend() 返回⼀个指向map头部的逆向迭代器 size() 返回map中元素的个数 swap() 交换两个map
upper_bound() 返回键值>给定元素的第⼀个位置 value_comp() 返回⽐较元素value的函数