摘要: vector set转化为vector:vec.assign(set.begin(), set.end()) map 1. map默认从小到达排序,想要从大到小,可以: map<string, int, greater<string>> 2. map 不可以使用sort排序!不过可以使用在定义map 阅读全文
posted @ 2021-08-11 19:51 moonのsun 阅读(40) 评论(0) 推荐(0)
摘要: bool backTrace(vector<int>& nums, int index, int targetSum) { if (targetSum == 0) { return true; } if (index >= nums.size()) { return false; } // 先尝试使 阅读全文
posted @ 2021-08-04 19:22 moonのsun 阅读(59) 评论(0) 推荐(0)
摘要: 1. push_back -> emplace_back:和拷贝有关 2. for (auto one : nums) -> for (const auto& one : nums) :事实证明,没有&就是拷贝实现的,引用更快一些,但是假如不修改,最好使用const 3. 选对STL容器 ① map 阅读全文
posted @ 2021-07-30 20:05 moonのsun 阅读(60) 评论(0) 推荐(0)
摘要: 1. 使用场景 一个数组,对于第i个元素,找出离它最近且比它大/小的两边的index分别是多少? 比如“LeetCode接雨水”这道题,就需要找出距离某个index最近且比它大的两边的index, 然后才可以以该index为hight,以right - left + 1位width,求出可以接到的雨 阅读全文
posted @ 2021-07-27 14:24 moonのsun 阅读(47) 评论(0) 推荐(0)
摘要: 1. for循环容易忘记break,很多提交不过,都是因为这个 2. 左右指针,思考起来比较复杂,但是以代码容易理解、code精简为主,不要在乎省下一两次运算时间 3. 左右指针,有时候以left <= right为结束条件,可以规避很多边界条件的特殊处理,比如“论文的引用指数h的计算” 4. 假如 阅读全文
posted @ 2021-07-13 10:19 moonのsun 阅读(69) 评论(0) 推荐(0)
摘要: 网上给出Ubuntu更改用户名步骤: 1、进入Ubuntu,打开一个终端,输入 sudo su转为root用户。 注意,必须先转为root用户!!! 2、gedit /etc/passwd ,找到代表你的那一行,修改用户名为新的用户名。 注意:只修改用户名!后面的全名、目录等不要动! 3、gedit 阅读全文
posted @ 2020-12-22 11:58 moonのsun 阅读(5336) 评论(0) 推荐(0)
摘要: 1. GetInstance()函数返回值为指针 为了防止拷贝出现,GetInstance()可以返回指针或者引用: A *m_pA = A::GetInstance(); A &a = A::GetInstance(); 返回引用,对调用时候的定义有一定的要求,不如直接返回指针方便; 万一调用者没 阅读全文
posted @ 2020-04-07 14:14 moonのsun 阅读(481) 评论(0) 推荐(0)
摘要: 1. static_cast 只支持相关类型的转换,比较安全,比如short与int,double与int,void* 与 int*, float*等 特点:编译期间转换 2. const_case 去掉表达式的 const 修饰或 volatile 修饰,将 const/volatile 类型转换 阅读全文
posted @ 2020-01-02 11:35 moonのsun 阅读(208) 评论(0) 推荐(0)
摘要: 1. 两个类需要相互包含的情景 在观察者模式中,气象站的数据送给某些布告牌。 气象站要知道通知哪些布告牌,所以气象站类至少有一个布告牌类型的链表。 布告牌需要把自己注册到气象站类,告诉气象站类自己已经订阅消息, 注册函数需要气象站类作为形参,才知道自己注册到哪一个气象站。 也就是说,在类定义的时候, 阅读全文
posted @ 2019-03-30 22:38 moonのsun 阅读(1543) 评论(0) 推荐(0)
摘要: 1.主题subject subject中有一个链表,用来存放已经注册的observer对象,这样数据改变的时候就可以在notice里面实现通知所有observer了。 既然是list,那么数据类型应该是相同的,所以不可以创建公告牌A,公告牌B等不同的类型。 书中给出,创建observer类,里面只有 阅读全文
posted @ 2019-03-29 00:22 moonのsun 阅读(145) 评论(0) 推荐(0)
摘要: 1.typedef的常规用法 typedef unsigned int UNIT; UINT b; 需要注意的地方有下面几点: ①define 前面替代后面, typedef后面替代前面,这个不要记混了. ②typedef 后面有"分号",宏定义没有. UINT是unsigned int类型的别名. 阅读全文
posted @ 2019-03-20 10:05 moonのsun 阅读(485) 评论(0) 推荐(0)