map、set例子

原创 2015年07月08日 15:43:18
#include<iostream>
#include<map>
#include<string>
#include<cstddef>
#include<set>

using namespace std;

//void main()
//{
//	map<string, string> phonebook;
//	phonebook.insert(pair<string,string>("songji", "123456879"));
//	//phonebook.insert(make_pair<string,string>("sj", "159467893"));
//	phonebook.insert(make_pair("sj", "159467893"));    //不需要传入参数类型
//	phonebook.insert(map<string, string>::value_type("songji", "123456879"));
//	for (auto out : phonebook)
//		cout << out.first << " " << out.second << endl;
//}

//int main()
//{
//    string word;
//    map<string,int> word_count;
// 
//    while(cin >> word)
//    {
//        pair<map<string,int>::iterator,bool> p = word_count.insert(make_pair(word,1));
          //insert(或者emplace)返回的值依赖于容器类型和参数。对于不包含重复关键字的容器,添加单一元素的insert和emplace版本返回一个pair。
          //pair的first成员是一个迭代器,指向具有给定关键字的元素;
          //pair的second成员是一个bool值,指出元素是插入成功还是已经在容器中。
          //如果关键字已经在容器中,则insert什么事情也不做,且返回值中的bool部分为false。
          //如果关键字不在容器中,元素被插入到容器中,且bool值为true。
//        if(p.second == false)
//        {
//            ++p.first->second;    //++(*(p.first).second);
//        }
//    }
// 
//    for(map<string,int>::iterator flag=word_count.begin();flag!=word_count.end();flag++)
//        cout << flag->first << " " << flag->second << endl;
//}

void main()
{
	/*map<int, int> num;
	int xuehao;*/

	map<string, size_t> word_count;
	string word;

	set<string> exclude = { "the", "a", "an", "The", "A", "An" };     //排除指定的要统计的单词的集合

	while (cin >> word)
	{
		if (exclude.find(word)==exclude.end())    //当在exclude的set中找不到“word”,find才会返回end,下面语句才会执行
			++word_count[word];    //在set找见,则不会执行,也就实现了设定的忽略统计单词的集合
								   //提取word的计数器,并对其加1;
		//当对word_count进行下标操作时,我们使用一个string作为下标,获得与此string相关联的size_t类型的计数器
	}

	for (const auto &w : word_count)       //当对map中提取一个元素时,会得到一个pair类型的对象(first成员保存关键字,second成员保存对应的值)
		cout << w.first << "\t" << w.second << ((w.second) > 1 ? "times" : "time") << endl;
}


JAVA集合框架之List、Map、Set之间的选择~小案例分析

案例分析 案例介绍:简易扑克牌游戏。 集合(list、set、map)的选择 既然要比较,我们还是先从JAVA集合的祖先来介绍。...
  • qq_23473123
  • qq_23473123
  • 2016年04月28日 16:28
  • 1391

list , set ,map 三者的用法以及区别

首先,讲一下list和set之间的相似性,list和set都是单列集合,他们有一个共同的父接口---collection。list是依次列出一个结合中的所有的元素,若集合中有重复的,同样列出,有序;s...
  • liunian02050328
  • liunian02050328
  • 2013年08月31日 16:00
  • 17153

Java中Set、List、Map、foreach简单例子

package com.cn.forecah;import java.util.ArrayList; import java.util.HashMap; import java.util.HashSe...
  • znwnymys
  • znwnymys
  • 2016年09月07日 16:21
  • 3214

map和set的使用和原理

我们学习过顺序容器如vecor,list等,它们中的元素是按照在容器中的位置来顺序保存和访问的。而接下来要学习的关联容器则有根本的不同,它们中的元素是按关键字来保存和访问的。 在《C++Primer...
  • xy913741894
  • xy913741894
  • 2017年02月16日 13:21
  • 1023

map set list三种集合之间的关系及各自的特点

今天给大家带来的是三种常用集合各自的性能分析,这里只是浅谈,就不深入讲解底层了。 在这里先上关系图: 一,Conllection: 接下来先看一下Collection接口: 他...
  • qq_35681180
  • qq_35681180
  • 2016年11月28日 18:01
  • 1012

map和set的异同

异同分析MAP的节点是一对数据. SET的节点是一个数据.map使用关键值Key来唯一标识每一个成员, map的value值可以重复。 set存储已排序的无重复的元素。都属于关联容器 ,形式不...
  • will130
  • will130
  • 2016年03月12日 15:33
  • 1698

Python学习-map&set

map()函数对可迭代函数’iterable’中的每一个元素应用‘function’方法,将结果作为list返回。来个例子:>>> def add100(x): ... return x+10...
  • xjc200808
  • xjc200808
  • 2016年06月15日 18:52
  • 285

Java 语言中 List、Set 和 Map 的区别

List、Set 和 Map 都是实现了 Collection 接口的接口。本文将讨论 Java 语言中这三者之间的区别。...
  • defonds
  • defonds
  • 2015年08月21日 17:52
  • 5063

map和set异同

节选一: MAP的节点是一对数据.    SET的节点是一个数据. Map使用关键值Key来唯一标识每一个成员 map可以重复。 set是集合                     ...
  • hanghang121
  • hanghang121
  • 2015年06月02日 15:35
  • 1055

set与map容器

首先来看看set集合容器:   set集合容器实现了红黑树的平衡二叉树数据结构,在插入元素时它会自动调整二叉树的排列,把该元素放到适当的位置,并且 保证左右子树平衡。平衡二叉检索树采用中序遍历算法。 ...
  • ACdreamers
  • ACdreamers
  • 2013年08月25日 19:21
  • 7084
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:map、set例子
举报原因:
原因补充:

(最多只允许输入30个字)