容器主要包括Collection和Map两种,Collection存储着对象的集合,Map存储着键值对(两个对象)的映射表。 说说List、Set、Map三者的区别 List(对付顺序的好帮手):List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象。 Set(注意独一无二的性质):不允许重复的集合。不会有多个元素引用相同的对象。 Map(用...
set set中不允许相同元素 map map 与 set 的不同在于 map 中存放的元素有且仅有两个成员变,一个名为 first,另一个名为 second,map 根据 first 值对元素从小到大排序,并可快速地根据 first 来检索元素。 3. 容器适配器 封装了一些基本的容器,使之具备了新的函数功能,包含 stack、queue。 stack:栈 栈是...
Set 对每个对象只接受一次, 并使用自己内部的排序方法 (通常, 你只关心某个元素是否属于 Set,而不关心它的顺序--否则应 该使用 List)。 Map 同样对每个元素保存一份,但这是基于 "键"的, Map 也有内置的排序, 因而不关心元素添加的顺序。 如果添加元素的顺序对你很重要, 应该使用 LinkedHashSet 或者 LinkedH...
map是STL中的一个关联容器,提供键值对的数据管理。底层通过红黑树来实现,实际上是二叉排序树和非严格意义上的二叉平衡树。所以在map内部所有的数据都是有序的,且map的查询、插入、删除操作的时间复杂度都是O(logN)。 unordered_map和map类似,都是存储key-value对,可以通过key快速索引到value,不同的是unordered_map...
解一个map的迭代器,得到的是pair,key是const的,不可以更改。 解一个set的迭代器,得到的是key也是const的,不可以更改。 map<string,int> cnt{{"aa",1}, {"bb",2}};automap_it = cnt.begin();//map_it->first = "new key";//错误,first为const++map_it->second;cout<< map_it->second <<en...
C/C++——set的基本操作总结 set容器中只能存储键,是单纯的键的集合,其中键是不能重复的。 set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。 下面简单总结下set容器的操作: 1、set对象的定义和初始化 set对象的定义和初始化方法包括:...
vector:它是一个动态分配存储空间的容器。区别于c++中的array,array分配的空间是静态的,分配之后不能被改变,而vector会自动重分配(扩展)空间。 set:其内部元素会根据元素的键值自动被排序。区别于map,它的键值就是实值,而map可以同时拥有不同的键值和实值。
与inline函数的区别: **内联函数**的作用主要就是使用在一些短小而使用非常频繁的函数中,在调用内联函数的地方将内联函数内的语句Copy到调用函数的地方,从而提高了效率,减少函数调用的开销。比如内联函数inline int func(int x){return x\*x;} 在调用的时候cout<<func(x)<<endl,在编译时将被展开为:cout<...
map<char, int> m1;//string是key的类型,int是value的类型,一个字符串对应一个整数 map<set<int>, string> m2;//一堆整数对应一个字符串 //map添加元素,每添加一个元素到map中,map会根据key值自动进行排序(升序) //key值重复就覆盖,所以不会重复 ...