
C++
ChiLi_Lin
卧槽!卧槽!!卧槽!!!!!
展开
-
C++贪心算法实现马踏棋盘问题
C++马踏棋盘的贪心算法原创 2016-12-18 14:17:20 · 5181 阅读 · 1 评论 -
C++ 学习笔记(6)函数、局部静态对象、重载函数、内联函数、constexpr函数、调试帮助、函数匹配、函数指针
C++ 学习笔记(6)函数、局部静态对象、重载函数、内联函数、constexpr函数、调试帮助、函数匹配、函数指针 参考书籍:《C++ Primer 5th》6.1 函数基础6.1.1 局部对象局部静态对象:在程序执行第一次经过该对象时初始化,直到程序终止才被销毁。size_t count_calls(){ static size_t ctr = 0; return ++原创 2018-01-16 22:39:15 · 482 阅读 · 0 评论 -
C++ 学习笔记(10)泛型算法、lambda表达式、bind函数、迭代器
C++ 学习笔记(10)泛型算法、lambda表达式、bind函数、迭代器 参考书籍:《C++ Primer 5th》 API:算法库、lambda表达式、std::bind、 迭代器10.1 概述算法永远不不会改变底层容器的大小。10.2 初识泛型算法10.2.1 只读算法accumulate,积累。第三个参数类型决定了函数中使用哪个加法运算符以及返回值类型。序列中元素必须与第三原创 2018-01-31 23:30:34 · 434 阅读 · 0 评论 -
C++ 学习笔记(8)IO库
C++ 学习笔记(8)IO库 参考书籍:《C++ Primer 5th》 API:std::iostream8.1 IO类8.1.1 IO对象无拷贝或赋值不能拷贝或对IO对象赋值,通常用引用来操作。读写IO对象会改变其状态,所以传递或返回的引用不是const的。ofstream out1, out2;out1 = out2; // 错误。不能对流对象原创 2018-01-25 15:33:20 · 436 阅读 · 0 评论 -
C++ 学习笔记(11)关联容器、桶
C++ 学习笔记(11)关联容器、桶 参考书籍:《C++ Primer 5th》 API:关联容器11.2 关联容器概述11.2.2 关键字类型的要求对于有序容器(map、multimap、set、multiset),关键字类型必须定义元素比较的方法。默认使用<运算符来比较。在自定义<运算符时,必须定义为严格弱序(strict weak ordering):即小于等于,性质如下:原创 2018-02-02 23:53:05 · 797 阅读 · 0 评论 -
C++ 学习笔记(12)动态内存、智能指针、new和delete、动态数组、allocator
C++ 学习笔记(12)动态内存、智能指针、new和delete、动态数组、allocator 参考书籍:《C++ Primer 5th》 API:动态内存管理静态内存: 保存局部static对象、类static数据成员、定义在函数外的变量。使用前分配,程序结束时销毁。栈内存: 保持函数内的非static对象。存在于程序块中。堆内存(动态分配): 程序控制动态对象。12.1 动原创 2018-02-06 01:56:07 · 1103 阅读 · 0 评论 -
C++ 学习笔记(9)顺序容器、容器适配器
C++ 学习笔记(9)顺序容器 参考书籍:《C++ Primer 5th》 API:容器库9.1 顺序容器概述string 和 vector 元素保存在连续的内存空间中。所以用下标计算地址时非常快。forward list 的设计目的是达到与手写单项列表数据结构相当的性能。9.2 容器库概述class A{public: string name; A(strin原创 2018-01-28 17:35:03 · 470 阅读 · 0 评论 -
C++ 学习笔记(13)拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数、右值引用、引用限定符
C++ 学习笔记(13)拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数、右值引用、引用限定符 参考书籍:《C++ Primer 5th》 API:类13.1 拷贝、赋值与销毁13.1.1 拷贝构造函数拷贝构造函数的第一个参数必须是引用类型,通常还是const的引用。因为对于函数参数传递时,非引用类型的参数需要进行拷贝初始化,而如果拷贝构造函数的参数是非引用类型,就原创 2018-02-10 00:23:40 · 1930 阅读 · 0 评论 -
C++ 学习笔记(14)重载运算与类型转换、函数对象、function库
C++ 学习笔记(14)重载运算与类型转换、函数对象、function库 参考书籍:《C++ Primer 5th》 API:运算符重载14.1 基本概念除了重载的函数调用运算符operater( ) 之外,其他重载运算符不能含有默认实参。如果运算符函数是成员函数,左侧运算对象绑定到隐式this指针。&&、|| 和 , 在重载时顺序规则失效。(C++17前) &&、||:同时失去原创 2018-02-11 17:29:06 · 392 阅读 · 0 评论 -
C++ 学习笔记(19)new/delete表达式、定位new、typeid、dynamic_cast、type_info、枚举类型、成员函数指针、union、位域、volatile限定符、链接指示
C++ 学习笔记(19)new/delete表达式、定位new、typeid、dynamic_cast、type_info、枚举类型、成员函数指针、union、位域、volatile限定符、链接指示 参考书籍:《C++ Primer 5th》 C++ 学习笔记(12)动态内存、智能指针、new和delete、动态数组、allocator19.1 控制内存分配19.1.1 重载new和de原创 2018-02-26 17:59:16 · 560 阅读 · 0 评论 -
C++ 学习笔记(16)模板、引用折叠、std::forward、可变参数模板、模板特例化
C++ 学习笔记(16)模板、引用折叠、std::forward、可变参数模板、模板特例化 参考书籍:《C++ Primer 5th》 API:模板16.1 定义模版16.1.1 函数模版template <typename T> int compare(const T &v1, const T &v2){ if (v1 < v2) return -1; if (v2原创 2018-02-19 19:25:04 · 2356 阅读 · 0 评论 -
C++ 学习笔记(17)tuple类型、bitset类型、随机数(引擎和分布)、IO库(操纵符、未格式化输入输出、随机访问)
C++ 学习笔记(17)tuple类型、bitset类型、随机数(引擎和分布)、IO库(操纵符、未格式化输入输出、随机访问) 参考书籍:《C++ Primer 5th》17.1 tuple 类型17.1.1 定义和初始化tupletuple 的构造函数是explicit的。tuple <int, float , string> t = {1, 2.0, "stf"}; // 错误。要原创 2018-02-21 01:13:17 · 757 阅读 · 0 评论 -
C++ 学习笔记(15)面向对象程序设计(类、继承、虚函数、抽象类、using命令、容器与继承)
C++ 学习笔记(15)面向对象程序设计(类、继承、虚函数、抽象类、using命令、容器与继承) 参考书籍:《C++ Primer 5th》 API:类15.1 OOP:概述面向对象程序设计(object-oriented programming)的核心思想:数据抽象、继承、动态绑定。使用基类的引用(或指针)调用一个虚函数时,发生动态绑定(运行时绑定)。15.2 定义基类和派生类1原创 2018-02-14 19:02:02 · 549 阅读 · 0 评论 -
C++ 学习笔记(2)变量和基本类型(复合类型:引用、指针)、const、constexpr、typedef(using)、auto、decltype
C++ 学习笔记(2)变量和基本类型(复合类型:引用、指针)、const、constexpr、typedef(using)、auto、decltype 参考书籍:《C++ Primer 5th》2.1 基本内置类型2.1.1 算术类型类型char和类型signed char并不一样,类型char可能表现形式是带符号或无符号的,具体由编译器决定。所以最好不要直接用原创 2018-01-05 18:41:03 · 593 阅读 · 0 评论 -
C++ 学习笔记(7)类、友元、默认构造函数(default)、可变数据成员(mutable)、前向声明和不完全类型、聚合类、字面值常量类
C++ 学习笔记(7)类、友元、默认构造函数(default)、可变数据成员(mutable)、前向声明和不完全类型、聚合类、字面值常量类 参考书籍:《C++ Primer 5th》7.1 定义抽象数据类型7.1.2 定义改进的Sales_data类定义在类内部的函数是隐式的inline函数。所有成员必须在类内部声明,但是成员函数体可以定义在类内,也可以定义在类外。this默认是一个常量原创 2018-01-22 17:24:40 · 593 阅读 · 0 评论 -
C++ 二分法查找元素及其索引
C++ 二分法查找元素及其索引原创 2017-02-15 20:08:34 · 1808 阅读 · 0 评论 -
C++ merge 和 inplace_merge 的区别
C++ merge 和 inplace_merge 的区别 参考: http://stackoverflow.com/questions/21624268/difference-between-stdmerge-and-stdinplace-merge http://www.cplusplus.com/reference/algorithm/merge/ http://www.原创 2017-02-15 00:12:27 · 4180 阅读 · 0 评论 -
c++ 进制转换,字母大小写转换,map按值排序 简单函数
常用自定义函数原创 2016-11-07 21:30:57 · 894 阅读 · 0 评论 -
C++ <ctime>(time.h)库笔记 以及简便计算日期差等
C++ <ctime>(time.h)库笔记 以及简便计算日期差等原创 2016-11-21 12:44:40 · 13247 阅读 · 0 评论 -
C++ 蓝桥杯OJ题目 判断名次
问题描述 某场比赛过后,你想要知道A~E五个人的排名是什么,于是要求他们每个人说了一句话。(经典的开头……-_-!)得了第1名的人23,说了假话;得了第5名的人不好意思,也说了假话;为了使求解问题简单,第3名同样说了假话。(奇数名次说假话) 输入格式 共5行,各行依次表示A~E说的话。 每行包含一个形如“A>=3”的名次判断,即一个大写字母+关系运算符+一个数字,不包含原创 2017-04-02 18:58:08 · 1344 阅读 · 0 评论 -
C# 入门(12) 转换(conversion)、装箱拆箱、is 操作符、as 操作符
C#的转换checked和unchecked运算符 checked和unchecked语句用户自定义转换 is运算符as运算符原创 2017-05-04 10:46:36 · 1003 阅读 · 0 评论 -
Unity 导入C# DLL、C\C++ DLL 等外部库
Untiy 导入C# DLL、C\C++ DLL、OSX BUNDLE、iOS Android 等插件。原创 2017-05-18 12:00:04 · 27315 阅读 · 7 评论 -
C++ 01背包动态规划实现并输出选中物品
本文参考查阅至: 动态规划之01背包问题(最易理解的讲解) 算法设计与分析–01背包问题(动态规划法解决)关于01背包递归或者动态规划递归或者动态规划循环网上都有很多,但我觉得代码都有些乱,所以决定自己记录一下,这里就只记录动态规划循环实现方法.借用表格(源至上面第一个链接)(从下到上,从左到右) 状态转移方程(根据上图): 表达式 条件 dp[i][j] = dp[i原创 2017-04-01 12:50:20 · 6994 阅读 · 3 评论 -
3D数学 学习笔记(3) 欧拉角与四元数
3D数学 学习笔记(3) 欧拉角与四元数 参考书籍: 《3D数学基础:图形与游戏开发》 【Numberphile数字狂】神奇四元数常用矩阵和四元数表示“角位移”,用欧拉角表示“方位”。欧拉角常用约定“heading-pitch-bank”围绕轴分别代表:y、x、z,使用的是左手坐标系,从惯性坐标系到物体坐标系。要注意的是heading使用的是惯性坐标,pitch和bank使用的是物原创 2017-10-27 14:17:30 · 3291 阅读 · 0 评论 -
C++ 学习笔记(1)开始
C++ 学习笔记(1)开始 参考书籍:《C++ Primer 5th》 书籍答案:https://github.com/Mooophy/Cpp-Primer1.1main函数返回值:必须为 int。作为指令状态,成功为0,非0通常是错误类型,由系统定义。(P23)默认情况下,读cin会刷新cout;程序非正常终止时也会刷新cout。1.2在使用打印语句原创 2018-01-05 18:39:44 · 320 阅读 · 0 评论 -
C++ 学习笔记(5)语句、异常
C++ 学习笔记(5)语句、异常 参考书籍:《C++ Primer 5th》5.3 条件语句5.3.2 switch语句switch内部的变量定义:不能初始化变量,仅可以定义。最好使用花括号已限制变量作用域。5.4 迭代语句5.4.3 范围for语句(range for statement)遍历序列(拥有能返回begin和end成员的类型): 用花括号括起来的初始值列表。数组。ve原创 2018-01-12 20:26:50 · 400 阅读 · 0 评论 -
C++ 学习笔记(4)表达式、运算符、类型转换(static_cast、const_cast、reinterpret_cast、dynamic_cast)
C++ 学习笔记(4)表达式、运算符、类型转换(static_cast、const_cast、reinterpret_cast、dynamic_cast) 参考书籍:《C++ Primer 5th》4.1 基础4.1.1 基本概念左值:对象的身份(在内存所在的位置)。 赋值对象。取地址符作用对象是左值,返回结果指针是右值。内置解引用运算符、下表运算符对象。原创 2018-01-11 23:50:55 · 477 阅读 · 0 评论 -
C++ 学习笔记(18)异常处理(noexcept说明符和noexcept运算符、构造函数的try和catch)、命名空间(using声明和using指示)、多继承(虚继承)
C++ 学习笔记(18)异常处理(noexcept说明符和noexcept运算符、构造函数的try和catch)、命名空间(using声明和using指示)、多继承(虚继承) 参考书籍:《C++ Primer 5th》 C++ 学习笔记(5)语句、异常18.1 异常处理18.1.1 抛出异常析构函数中,对于可能抛出异常的操作,必须放在try块中,并得到处理。否则在析构函数抛出异常时,程原创 2018-02-23 01:12:52 · 902 阅读 · 0 评论