C++语法速查

map

新旧两种方式遍历map

unordered_map<char, int> mp;
for(const auto &mypair : mp) {
cout << mypair.first << " " << mypair.second << endl;
}
或者
for(const auto &[name, age] : mp) {
cout << name << ": " << age << endl;
}
unordered_map<char, int> mp;
for(unordered_map<char, int>::iterator it = mp.begin(); it != mp.end(); ++it) {
cout << "Key: " << it->first << ", Value: " << it->second << endl;
}

count与find函数

count()函数返回的是指定key的数量(注意不是返回value),也就是说,在unordered_map里只能返回0或1,而在multi_map里可以返回其它数值

find()函数用于判断指定key是否存在,返回一个指向该元素的迭代器,如果未找到,则返回指向 map::end() 的迭代器


set

使用vector构造set

vector<int> nums = {1, 2, 2};
set<int> st(nums.begin(), nums.end()); //多用于去重,且会自动升序排序
vector<int> v(st.begin(), st.end()); //去完重再返回vector,便于用传统for循环

priority_queue

创建优先队列

priority_queue 默认是最大堆(即优先级最高的元素在顶部):

priority_queue<int> pq; // 创建一个默认的最大堆

可以使用 std::greater 作为比较器来创建最小堆:

priority_queue<int, vector<int>, greater<int>> minHeap;

ps:vector<int>priority_queue 的第二个模板参数,指定了底层容器的类型。 priority_queue 需要一个底层容器来存储元素,其他可能的选项还包括 dequelist,但 vector 通常是最常用的选择,因为它在内存使用和随机访问性能上表现较好。


如果要创建的优先队列元素比较特殊,比如链表节点指针,就要自定义比较器了👇

自定义比较器

struct Comparator {
bool operator()(ListNode *a,ListNode *b) {
return a->val > b->val; //代表小根堆,因为如果返回true,就表示左侧元素的优先级低于右侧元素(有点反直觉)
}
};
priority_queue<ListNode*, vector<ListNode* >, Comparator> queue;

函数原型

pq.push(10); //插入元素
pq.top(); //访问顶部元素
pq.pop(); //删除顶部元素
pq.empty(); //检查优先队列是否为空
pq.size(); //获取优先队列中元素的数量

functions

新旧两种sort函数

string str = "bac";
ranges::sort(str); //按字典顺序排序,str = "abc"
ranges::sort(str, greater()); //降序
string str = "bac";
sort(str.begin(), str.end()); //同上,如果是int,则按升序排列

ranges

ranges::max(v); //v是vector数组
ranges::sort(str);


不准投币喔 👆

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇