Map
map 有 4 种:
- map<K,T> 每个键都是唯一的,不允许有重复的键,但可以保存重复的对象,只要它们的键不同。map容器中的元素都是有序的,元素在容器内的顺序是通过比较键确定的。默认使用 less 对象比较。
- multimap<K,T> 容器和 map<K,T> 容器类似,也会对元素排序。它的键必须是可比较的,元素的顺序是通过比较键确定的。和map<K,T> 不同的是,multimap<K,T> 允许使用重复的键。因此,一个 multimap 容器可以保存多个具有相同键值的<const K,T> 元素。
- unordered_map<K,T> 中 pair<const K,T>元素的顺序并不是直接由键值确定的,而是由键值的哈希值决定的。哈希值是由一个叫作哈希的过程生成的整数。unordered_map<K,T>不允许有重复的键。
- unordered_multimap<K,T> 也可以通过键值生成的哈希值来确定对象的位置,但它允许有重复的键。
map操作:
1.find()查找是否有这个元素,如果存在返回指向该关键字的迭代器,否则返回指向end的迭代器,一般和end()一起用。
if (map.find(a) == map.end())
2.添加:map[a] = b
3.empty() size()
运算符
C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *。
指针是一个包含了另一个变量地址的变量,您可以把一个包含了另一个变量地址的变量说成是"指向"另一个变量。变量可以是任意的数据类型,包括对象、结构或者指针。
指针运算符:取地址运算符 &
& 是一元运算符,返回操作数的内存地址。例如,如果 var 是一个整型变量,则 &var 是它的地址。该运算符与其他一元运算符具有相同的优先级,在运算时它是从右向左顺序进行的。
您可以把 & 运算符读作"取地址运算符",这意味着,&var 读作"var 的地址"。
指针运算符:间接寻址运算符 *
第二个运算符是间接寻址运算符 *,它是 & 运算符的补充。一元运算符,返回操作数所指定地址的变量的值。
-> 以及 .
箭头(->):左边必须为指针;
点号(.):左边必须为实体。
^
A = 0011001100
B = 0101010101
A^B = 0110011001
不同取1,相同取0
有一个特性就是不管AB为多少 A ^B ^B = A, 因为B ^ B = 0,A中为0的还是0,为1的还是1。
~
0变1, 1变0
std
“std” a namespace. The “::” operator is the “scope” operator. It tells the compiler which class/namespace to look in for an identifier.
So std::cout tells the compiler that you want the “cout” identifier, and that it is in the “std” namespace.
nullptr来表示空指针
Stack
empty() – Returns whether the stack is empty – Time Complexity : O(1)
size() – Returns the size of the stack – Time Complexity : O(1)
top() – Returns a reference to the top most element of the stack – Time Complexity : O(1)
push(g) – Adds the element ‘g’ at the top of the stack – Time Complexity : O(1)
pop() – Deletes the top most element of the stack – Time Complexity : O(1)
本文详细介绍了C++标准模板库(STL)中的四种Map容器:map, multimap, unordered_map和unordered_multimap的区别与操作,以及指针运算符、栈的基本操作等重要内容。
1401

被折叠的 条评论
为什么被折叠?



