C++
文章平均质量分 61
纸上得来终觉浅 绝知此事要躬行
github.com/luqian2017
展开
-
关于C++的隐藏 (hidden),重载(overload),重写(override)小结。
假如继承以后,子类出现父类同名函数, 即使参数的形式不同, 也会导致父类的函数隐藏, 不参与函数匹配,不能使用。如果子类就是想调用父类的同名不同参的函数呢?关于overload。关于override。原创 2023-09-10 01:24:11 · 247 阅读 · 0 评论 -
C++操作符重载的注意事项
关于C++操作符重载,可以用类内的成员运算符重载或友元函数。但是注意两个不能同时出现,不然编译出错。原创 2023-09-02 10:59:47 · 210 阅读 · 0 评论 -
谈谈C/C++的指针,数组和可变长数组
个人关于C/C++的指针,数组和可变长数组的总结。原创 2023-04-06 15:56:29 · 913 阅读 · 1 评论 -
LintCode 511: Swap Two Nodes in Linked List (链表好题)
511 · Swap Two Nodes in Linked List原创 2022-11-11 16:36:07 · 353 阅读 · 0 评论 -
C++类成员函数指针的学习
C++类成员函数指针学习原创 2022-10-08 16:34:12 · 238 阅读 · 0 评论 -
C++智能指针学习
C++ 智能指针学习原创 2022-10-08 07:46:28 · 202 阅读 · 0 评论 -
C++的委托构造函数学习
C++ 委托构造函数学习原创 2022-09-30 12:37:34 · 246 阅读 · 0 评论 -
LeetCode 93: Restore IP Addresses (DFS题)
Restore IP AddressesMediumGiven a string s containing only digits, return all possible valid IP addresses that can be obtained from s. You can return them in any order.A valid IP address consists of exactly four integers, each integer is between 0 and.原创 2021-07-07 14:21:08 · 100 阅读 · 0 评论 -
LeetCode 1760: Minimum Limit of Balls in a Bag (二分法经典题)
Minimum Limit of Balls in a BagMediumYou are given an integer array nums where the ith bag contains nums[i] balls. You are also given an integer maxOperations.You can perform the following operation at most maxOperations times:Take any bag of balls a.原创 2021-07-07 11:50:54 · 305 阅读 · 0 评论 -
C++中 public,protected, private 访问标号小结
C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。注:友元函数.转载 2021-06-06 15:17:31 · 105 阅读 · 0 评论 -
C++ 模板函数特化与重载
如果程序里有普通模板,模板特化版本,和普通函数,那么程序优先选择普通函数。下面的程序里面打印"normal func"。#include <iostream>using namespace std;template<typename T>T func(T a, T b) { cout << "template<T> func" << endl; return a + b;}template<>int原创 2021-04-29 13:39:48 · 1035 阅读 · 0 评论 -
C++ 模板的引用参数推导
以下是海贼班上的学习笔记,加上自己的一些心得。下面的swap代码可以正确运行。#include <iostream>using namespace std;namespace haizei {template<typename T>void swap(T &a, T &b) { T c; c = a; a = b; b = c; return ;}} // end of haizeiint main() {原创 2021-04-28 16:13:18 · 1036 阅读 · 0 评论 -
C++ 模板类学习
小本文是在海贼班学习的一些笔记。下面定义了一个模板类PRINT。注意:1.PRINT是模板,PRINT<int>才是类的名字。我们必须将PRINT<int> 实例化成123后才能调用print(123)。2. 我们可以看出print是被定义成了PRINT<int>。我们不能执行print<"hello">或print_int<"hello">来打印字符串。3. PRINT<int>(789)是生成一个PRINT<in.原创 2021-04-27 14:46:37 · 123 阅读 · 0 评论 -
C++ 防止编译器优化const和constexpr的学习
注意const是运行期常量,constexpr是编译器常量。下面的代码在C++ 11, LINUX 4.15.0-88-generic编译结果为0x7fff91706d980x7fff91706d9c456123 //编译器优化456123 //编译器优化后面2个123是因为编译器加了优化,看到是const和constexpr就直接把结果输出为123了。采用g++ -O0 const1.cpp 关掉编译器优化,效果还是一样。可能有些平台上可以。#include <iostream原创 2021-04-26 02:09:58 · 1950 阅读 · 0 评论 -
C++ nth_element函数用法学习
nth_element() 需要头文件<algorithm>。典型参数表为nth_element(RandomIt first, RandomIt nth, RandomIt last, Compare comp = less);nth_element的作用就是根据nth这个参数,把容器内的元素分为2组,nth之前的都比它小,nth之后的都比它大。类似partition算法。注意: nth之前和之后的元素都不保证排序。 nth_element()所支持的容器...原创 2021-03-03 15:11:49 · 991 阅读 · 1 评论 -
C语言用二维数组作为函数入口参数的小结
C语言里面定义了二维数组int arr[100][200];那arr就是一个指针,指针类型是什么呢?是int(*)[200]。所以最自然的是用下面的func2(int (*a)[200]) 或func3(int a[][200]),这样main函数调用的时候直接用func2(arr)或func3(arr)就可以了。这里的a是一个一维指针,指向一个int数组,这个数组有200个元素。当然也可以用func0(int *a),但func0里面不能直接用a[i][j],因为编译器不认识。访问a[i][原创 2020-10-03 15:24:54 · 993 阅读 · 0 评论 -
LintCode 601: Flatten 2D Vector (iterator经典题)
Flatten 2D VectorImplement an iterator to flatten a 2d vector.ExampleExample 1:Input:[[1,2],[3],[4,5,6]]Output:[1,2,3,4,5,6]Example 2:Input:[[7,9],[5]]Output:[7,9,5]注意这题不能用一个2D vector的copy,...原创 2019-12-18 16:43:00 · 194 阅读 · 0 评论 -
C++ Iterator设计模式的思考 (Boolan学习笔记第13周)
C++ Iterator设计模式的思考 (Boolan学习笔记第13周)原创 2017-04-16 05:40:39 · 621 阅读 · 0 评论 -
C++ Type Traits的学习 (Boolan学习笔记第九周)
C++ Type Traits的学习原创 2017-03-19 15:27:52 · 2845 阅读 · 0 评论 -
C++ insert_iterator实现的学习(Boolan学习笔记第10周)
C++ insert_iterator实现的学习原创 2017-03-28 16:14:55 · 1212 阅读 · 0 评论 -
C++ Observer设计模式的学习
Observer设计模式的学习原创 2017-04-07 13:49:22 · 379 阅读 · 0 评论 -
C++ STL Vector容器学习 (Boolan学习笔记第7周)
C++ STL Vector容器学习 (Boolan学习笔记第7周)原创 2017-03-09 13:58:50 · 324 阅读 · 0 评论 -
C++ ->操作符重载的思考 (Boolan学习笔记第八周)
C++ ->操作符重载的思考原创 2017-03-15 12:28:19 · 342 阅读 · 0 评论 -
C++的动态绑定(Boolan笔记第五周)
C++的动态绑定原创 2017-02-11 16:43:54 · 2188 阅读 · 0 评论 -
C++类和类之间的关系(Boolan笔记第三周)
C**++的类与类之间的关系原创 2017-02-09 15:08:37 · 1635 阅读 · 0 评论 -
C++中的4种cast学习(dynamic_cast, static_cast, reinterpret_cast, const_cast)
C++四种cast学习原创 2017-11-01 02:42:39 · 747 阅读 · 0 评论 -
C++如何设计一个不含指针的类
C++如何设计一个不含指针的类 (Boolan)原创 2017-02-05 15:14:19 · 778 阅读 · 1 评论 -
C/C++ 数据输入模板
一些模板如下:#include <iostream>using namespace std;int main() { int t, n, m; cin >> t; for (int i = 1; i <= t; ++i) { cin >> n; cout <<"Case #"<...原创 2019-04-13 15:39:12 · 636 阅读 · 0 评论 -
LintCode 237: Missing Integer (位运算题)
解法1:比较慢。/** * Definition of BitInteger: * class BitInteger { * public: * static int INTEGER_SIZE; * int fetch(int j) { * .... // return 0 or 1, fetch the jth bit of this number...原创 2018-11-12 02:43:23 · 409 阅读 · 0 评论 -
C++的二维vector和C的二维数组学习
C++的二维vector和C的二维数组学习参考了http://blog.csdn.net/zhuqinglu/article/details/1805050可通过下列代码直接创建m*n的二维vectorvector<vector <int> > ivec(m ,vector<int>(n)); //m*n的二维vector动态创建m*n的二维ve...原创 2018-03-19 14:26:34 · 3277 阅读 · 1 评论 -
C++位运算常见操作
一些位运算的常见操作,整理如下:注意:1)位运算操作符的优先级都非常低,尽量记得加括号。int set_bit(int x, int n){ return x |= (1 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; n);}原创 2018-10-28 13:17:48 · 2067 阅读 · 1 评论 -
C/C++ 一些知识点总结
临时整理的,有些可能不对。1)如果一个类里面有const-qualifier或reference, compiler不会为它生成default copy assignment operator函数。2) Hidden是指子类和父类有同名函数,但又没有virtual关键字。这里函数只要同名就可以了,参数并不需要match。也就是说,compiler只要在子类看到有这个函数名,即使参数不...原创 2018-03-03 17:15:15 · 2557 阅读 · 1 评论 -
C++如何设计一个含指针的类(Boolan笔记第二周)
C++如何设计一个含指针的类?原创 2017-02-07 15:02:07 · 617 阅读 · 0 评论 -
C++ 函数模板返回值指定
C++ 函数模板返回值指定原创 2017-11-29 02:26:28 · 5950 阅读 · 0 评论 -
C++ 虚析构函数的思考 (Boolan笔记第六周)
关于析构函数我们都听说过基类的析构函数一定要是虚函数。本文就分析这个问题。首先看看下面的代码:#include <iostream>using namespace std;class Base{public: Base() { cout<<"Base constructor"<<endl; } virtual ~Base...原创 2017-02-23 16:48:41 · 364 阅读 · 0 评论 -
C++类实例内存结构分析(Boolan笔记第四周)
C++类实例内存结构分析原创 2017-02-16 17:06:50 · 1404 阅读 · 0 评论