C++
s651665496
这个作者很懒,什么都没留下…
展开
-
C++迭代器失效场景
一、序列式容器(数组式容器) 对于序列式容器(如vector,deque),序列式容器就是数组式容器,删除当前的iterator会使后面所有元素的iterator都失效。 erase方法可以返回下一个有效的iterator。 for (iter = cont.begin(); iter != cont.end();) { (*it)->doSomething(); if (shouldDelete(*iter)) iter = cont.erase(iter); //e...原创 2022-02-17 15:44:24 · 787 阅读 · 0 评论 -
OJ练习题:点菜展示表(C++)
class Solution { public: vector<vector<string>> displayTable(vector<vector<string>>& orders) { unordered_map<int, map<string, int>> tblFoodCnt; unordered_set<string> nameSet; vector&...原创 2021-07-14 20:34:04 · 143 阅读 · 0 评论 -
OJ练习题:绝对差值和(1818)C++
class Solution { public: int minAbsoluteSumDiff(vector<int>& nums1, vector<int>& nums2) { int sum = 0; vector<int> stuVector = nums1; sort(stuVector.begin(), stuVector.end()); int baseDiff = 0...原创 2021-07-14 14:53:11 · 130 阅读 · 0 评论 -
C++ 【map和unordered_map区别】
map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素,因此,对于map进行的查找,删除,添加等一系列的操作都相当于是对红黑树进行这样的操作,故红黑树的效率决定了map的效率。 unordered_map: unordered_map内部实现了一个哈希表,因此其元素的排列顺序是杂乱的,无序的。 // 示例代码(基于时间的键值存储) class TimeMap { public: /** Initialize ..原创 2021-07-13 16:55:02 · 96 阅读 · 0 评论 -
C++【vector使用】
以 C++ 定义数组的操作为例,在 C++ 中如果定义一个数组,可以采用如下方式: int a[n]; 这种定义数组的方法需要事先确定好数组的长度,即 n 必须为常量,这意味着,如果在实际应用中无法确定数组长度,则一般会将数组长度设为可能的最大值,但这极有可能导致存储空间的浪费。 所以除此之外,还可以采用在堆空间中动态申请内存的方法,此时长度可以是变量: int *p = new int[n]; 这种定义方式可根据变量 n 动态申请内存,不会出现存储空间浪费的问题。但是,如果程序执行过程中出现空间不原创 2021-07-13 10:19:22 · 201 阅读 · 0 评论