map和pair的配合使用
map和pair的配合使用2011-08-04 15:54:45.0 来源:博客园 作者:佚名关键词: map pair 一、map和pair简介可以简单的理解为如下:map可以当做一个容器(装载
map和pair的配合使用
一、map和pair简介 可以简单的理解为如下:map可以当做一个容器(装载具有一定格式的数据);pair可以理解为元素(放入到容器的的一个个个体),发现pair并没有单独行动的典型用法,正常都是配合map来使用(即把pair这个元素插入到map这个容器里面) 二、示例讲解 typedef std::map<int, char *> Container; // int为map的键值(对应值first),char为map的值(对应于成员变量second) typedef std::pair<int, char *> Element; int _tmain(int argc, _TCHAR* argv[]) { Container container; // 定义map容器类实例 for (int nIndex = 0;nIndex < 10; nIndex ++) { char * p = new char[16]; sprintf(p,"element %d \0",nIndex); Element element(nIndex,p); // 定义pair类实例 container.insert(element); // 把元素插入到map容器里面 } // 查找键值为1的元素 Container::const_iterator ptr = NULL; ptr = container.find(1); if (ptr != container.end()) { printf("find key 1 \n"); } // 枚举map容器的元素 Container::iterator begin = container.begin(); while(begin != container.end()) { printf("%d element value :%s\n",(*begin).first,(*begin).second); delete [] (*begin).second; (*begin).second = NULL; begin ++; } return 0; } 输出如下: find key 1 0 element value :element 0 1 element value :element 1 2 element value :element 2 3 element value :element 3 4 element value :element 4 5 element value :element 5 6 element value :element 6 7 element value :element 7 8 element value :element 8 9 element value :element 9 三、附上map的相应的接口说明 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的函数 |
更多推荐
所有评论(0)