multimap的学习
来源:互联网 发布:java工程师个人简历doc 编辑:程序博客网 时间:2024/06/08 02:44
#include <map>#include <iostream>using namespace std;void test_multimap(){//构造 multimap 的测试数据 multimap<string, string> example; example.insert(make_pair(string("A"), string("11"))); example.insert(make_pair(string("A"), string("22"))); example.insert(make_pair(string("A"), string("33"))); example.insert(make_pair(string("B"), string("44"))); example.insert(make_pair(string("B"), string("55"))); example.insert(make_pair(string("B"), string("66"))); example.insert(make_pair(string("C"), string("77"))); example.insert(make_pair(string("C"), string("88"))); example.insert(make_pair(string("C"), string("99"))); example.insert(make_pair(string("D"), string("000"))); example.insert(make_pair(string("D"), string("111"))); example.insert(make_pair(string("D"), string("222"))); example.insert(make_pair(string("F"), string("0000"))); example.insert(make_pair(string("F"), string("1111"))); example.insert(make_pair(string("F"), string("2222"))); example.insert(make_pair(string("F"), string("3333"))); std::string del_item("A"); multimap<string, string>::size_type count = example.erase(del_item); std::string search_item = "C"; multimap<string, string>::iterator iter = example.find(search_item); multimap<string, string>::size_type all = example.count(search_item);//采用指定数量遍历 for (multimap<string, string>::size_type cnt = 0; cnt < all; ++cnt, ++iter) { std::cout << iter->first << ":" << iter->second << endl; }//采用一个指定范围的迭代器遍历 search_item = "B"; for (iter = example.lower_bound(search_item); iter != example.upper_bound(search_item); ++iter) { std::cout << iter->first << ":" << iter->second << endl; }//使用成对迭代器来遍历元素 search_item = "D"; pair<multimap<string, string>::iterator, multimap<string, string>::iterator> pos; for (pos = example.equal_range(search_item); pos.first != pos.second; ++pos.first) { std::cout << pos.first->first << ":" << pos.first->second << endl; }//multimap 中删除元素 search_item = "F"; for (iter = example.begin(); iter != example.end();) { if (iter->second == "0000" || iter->second == "2222") { std::cout << "erase " << iter->first << ":" << iter->second << endl; example.erase(iter++); } else { iter++; } }//输出所有元素 for (iter = example.begin(); iter != example.end(); ++iter) { std::cout << iter->first << ":" << iter->second << endl; }//查看multimap 的帮助文件,没有看到 multimap::operator[] 的定义,所以应该不支持 //这个访问方式,就算支持,也不好定义其返回的值,比如 map 是这样定义的 //Type& operator[](const Key& _Key);multimap 不好定义}int main(int argc, char *argv[]){ test_multimap(); return 0;}
0 0
- multimap的学习
- Guava学习之Multimap
- 从multimap学习红黑树
- multimap的使用
- multimap的基本操作
- multimap 的使用例子
- multimap的增删改
- multimap的查找
- map/multimap的简介
- multimap的删除问题
- map/multimap的实例
- multimap的用法
- multimap的用法示例
- map/multimap的排序
- multimap的使用方法
- ++ map、multimap 的使用方法
- 【C++ 学习笔记】:STL-multimap
- C++学习 std:multimap介绍
- 奖金提成
- 阴影制作(Shadow)
- 微博收藏(机器学习课程与论文)(三)
- Java创建初始上下
- Android基础笔记(十八)- Fragment
- multimap的学习
- 第三周 项目三--程序的多文件组织
- word 嵌入式插入图片 图片显示不全
- strrchr的实现
- 算法导论(一):快速排序与随机化快排
- net
- 学习Linux笔记(四)--文件操作
- 黑马程序员——面向对象(内部类)
- 串口通信