`
insertyou
  • 浏览: 890683 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C++primer 关联容器

 
阅读更多

pair<T1,T2>P1;

pair<T1,T2>p1(v1,v2);//v1为T1类型,v2为T2类型

make_pair(v1,v2);//返回一个pair对象

p.first;

p.second;

关联容器不能通过容器大小定义,不能用resize。

map<k,v>m(m2);

map<k,v>m;

map<k,v>m(b,e); //b,e为map迭代器。

键必须支持<。

map<k,v>::value_type为pair类型 const key_type mapped_type

map<k,v>::mapped_type 为键关联的值类型

map<k,v>::key_type 为键类型

map添加元素比较简便。类似下标就可。

如map<string,int>word;

word["a"]=1;//insert(make_pair("a",1);

word["a"]返回一个关联值

因此可以用map方便记录单词出现的次数。

map<string,int>word_count;

string word;

while(cin>>word)

{

word_count[word]++;

}

map的insert

m.insert(e); //e为pair 返回一个e的一个迭代器和bool判断是否成功插入

m.insert(beg,end);//返回void

m.insert(iter,e); //iter为辅助,返回迭代器,指向m中具有特定键的元素

m.count(k); //返回m中k的出现次数

m.find(k); //是否存在按k索引的元素,返回元素迭代器

m.erase(k);//删除键为k的元素。返回size_type类型,表示删除的元素个数。

m.erase(p);//删除迭代器p所指的元素,返回void

m.erase(b,e); //删除b,e的元素返回void

map可以作为单词转换,电话簿,字典。

set不支持下标操作符,

insert(key); //返回pair <iterator ,bool >;

set可以帮map忙记录单词排除的集。

multimap 不支持下标运算。

insert总会加元素。erase会删除所有符合的元素,返回删除个数。

在multimap中一个键所关联的元素必然相邻存放,因此找到第一个后,只要迭代器++,则能找到全部。

分享到:
评论

相关推荐

    C++ primer 5th,第十一章——关联容器

    C++ primer 5th,第十一章——关联容器,笔记&思维导图 按教材整理。

    C++ Primer第四版【中文高清扫描版】.pdf

    8. 顺序容器和关联容器的使用,包括vector、list、map、set等容器类型的操作。 9. 泛型算法的使用,如只读算法、写容器元素的算法和对容器元素重新排序的算法。 10. 类的定义、构造函数、复制控制、重载操作符、继承...

    C++Primer(第4版)-课后习题答案.pdf

    10. 第十章关联容器:涵盖`std::set`、`std::map`、`std::multiset`、`std::multimap`等,它们基于键值对的存储方式及查找、插入和删除操作。 11. 第十一章泛型算法:介绍C++标准库中的算法,如排序、搜索、交换、...

    c++Primer第四版 容器的综合应用:文本查询 源码

    `std::map`是C++中的一种关联容器,它按照键值对的形式组织数据,内部通常采用红黑树实现,提供O(log n)的时间复杂度进行插入、删除和查找操作。在文本查询中,`std::map`可以用来建立单词与出现次数的关系,或者...

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

    C++ Primer中文版(第5版)[203M]分3个压缩包 本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数...

    C++Primer中文版(第4版)完整版

    1. 容器:包括顺序容器(如vector、deque、list)和关联容器(如set、map),提供数据存储和操作的接口。 2. 迭代器:遍历容器元素的工具,类似于指针但更安全、功能更强大。 3. 队列与栈:queue和stack是基于容器的...

    C++Primer 第四版课后习题解答(第1~18章完整答案)完整版

    第十章“关联容器”如std::set、std::map和std::multiset等,习题解答会涵盖这些容器的插入、查找、删除以及排序机制。 第十一章“泛型算法”讨论了C++标准库中的通用算法,如排序、查找、变换等。习题解答会涉及到...

    C++Primer笔记之关联容器的使用详解

    本文将深入解析C++ Primer中提到的关联容器,特别是map和set的使用。 首先,关联容器包括set、map、multiset和multimap四种类型。set和map都是基于红黑树实现的,它们维护了元素的排序顺序。set存储的是单个键,不...

    C++ primer 课后习题完整版

    C++标准库提供了多种容器,如顺序容器(vector、list等)和关联容器(set、map等),用于存储数据。容器类模板提供了迭代器支持,用于顺序访问容器中的元素。 泛型算法是独立于容器类型和元素类型的算法,可以应用...

    《C++ Primer》学习笔记(27)顺序容器

    这与关联容器形成了对比,关联容器中的元素位置是由其键值决定的。本文档主要探讨了顺序容器的各种类型及其特性。 - **Vector**:一种可变大小的数组。当需要频繁地在数组末尾添加元素时,`vector`是非常高效的选择...

    C++ PRIMER 部分头文件及资源

    除了上述的,标准库还提供了许多其他辅助类和函数,如`std::string`用于处理字符串,`std::vector`和`std::array`作为动态和固定大小的数组,`std::map`和`std::unordered_map`用于关联容器,`std::pair`和`std::...

    C++ primer Query(15章第九节)

    例如,map提供关联数组,可以通过键值快速查找数据,而find算法可以用来定位容器中的特定元素。 7. **迭代器**:迭代器是访问容器内元素的主要工具,可以方便地遍历容器并执行查询操作。理解如何使用迭代器将极大地...

    C++ Primer Plus 编程练习源码工程 第13章

    《C++ Primer Plus 编程练习源码工程 第13章》是一个专注于C++学习者提升编程技能的资源集合。这个源码工程包含了作者LeonardoLiuwenbo在阅读《C++ Primer Plus》这本书时所做的各种编程练习,旨在帮助读者深入理解...

    C++ Primer学习笔记详解

    内容概要:这是关于《C++ Primer学习笔记》的文章,涵盖多种类型转换、异常机制、类静态成员、IO库介绍、顺序容器操作、泛型算法应用、关联容器概念与使用详解、动态内存智能指针管理、构造函数与拷贝构造细节探讨、...

    C++ Primer 4th及习题解答

    7. **STL容器深入探讨**:包括动态数组(vector)、链表(list)、关联容器(如set和map),以及容器适配器(如stack和queue)的使用和实现原理。 8. **智能指针**:C++11引入了智能指针,如unique_ptr、shared_ptr...

    《C++Primer》(第四版)课后习题答案

    第十章关联容器则介绍了STL中的关联容器,如set、multiset、map、multimap等,这些容器能够存储键值对,并提供快速的数据检索能力。 第十一章泛型算法是C++标准库中的一组泛型函数,它们可以作用于STL容器中的元素...

    C++ Primer Plus 学习笔记

    `std::set`和`std::map`是关联容器,提供了快速查找和插入功能。STL的使用极大地提高了代码的效率和可读性。 ### 文件输入输出 C++提供了丰富的文件操作接口,可以读写文本文件和二进制文件。`fstream`库包含了...

Global site tag (gtag.js) - Google Analytics