【C++】Leetcode Top 100 liked easy part

本文详细介绍了C++标准模板库(STL)中的四种Map容器:map, multimap, unordered_map和unordered_multimap的区别与操作,以及指针运算符、栈的基本操作等重要内容。

Map

map 有 4 种:

  1. map<K,T> 每个键都是唯一的,不允许有重复的键,但可以保存重复的对象,只要它们的键不同。map容器中的元素都是有序的,元素在容器内的顺序是通过比较键确定的。默认使用 less 对象比较。
  2. multimap<K,T> 容器和 map<K,T> 容器类似,也会对元素排序。它的键必须是可比较的,元素的顺序是通过比较键确定的。和map<K,T> 不同的是,multimap<K,T> 允许使用重复的键。因此,一个 multimap 容器可以保存多个具有相同键值的<const K,T> 元素。
  3. unordered_map<K,T> 中 pair<const K,T>元素的顺序并不是直接由键值确定的,而是由键值的哈希值决定的。哈希值是由一个叫作哈希的过程生成的整数。unordered_map<K,T>不允许有重复的键。
  4. 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)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值