随笔分类 -  [01]【C/C++】

上一页 1 2 3 4 5 6 ··· 10 下一页
摘要:工作中经常遇见的一个场景:判断某个元素是否在vector容器中。 当然,会有很多种方法,由内置数据类型到自定义数据类型,下面简单总结一下。 【1】内置数据类型 代码胜过一切文档。如下示例代码: 1 #include <iostream> 2 #include <vector> 3 #include 阅读全文
posted @ 2020-05-31 16:00 kaizenly 阅读(16898) 评论(0) 推荐(0) 编辑
摘要:【1】hpp文件 hpp,Header plus plus的缩写,实质是将.cpp的实现代码混入.h头文件,即声明与定义(实现)都包含在同一个文件中。 该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。 实现代码将直接编译到调用者的obj文件中,不再生成 阅读全文
posted @ 2020-04-12 21:05 kaizenly 阅读(12712) 评论(0) 推荐(2) 编辑
摘要:【1】函数符定义 函数对象,也叫函数符(functor)。即函数符其实是对函数对象的一种别称。 函数符(函数对象)是指可以类似函数方式与()结合使用的任意对象。 那么,很显然,函数符包括函数名、函数指针的对象和重载了()运算符的类对象(即定义了函数operator()()的类)。 【2】函数符种类 阅读全文
posted @ 2020-04-05 14:28 kaizenly 阅读(470) 评论(0) 推荐(0) 编辑
摘要:【1】复现编译错误 C2675: 一元“++”:“_Iter”不定义该运算符或到预定义运算符可接收类型的转换 1 #include <map> 2 #include <unordered_map> 3 4 struct GJGActionEvent 5 { 6 std::map<std::strin 阅读全文
posted @ 2020-04-03 00:10 kaizenly 阅读(2840) 评论(0) 推荐(1) 编辑
摘要:【1】右值和左值引用成员函数 【2】应用示例 简单的示例程序如下: 1 #include <iostream> 2 3 struct Test 4 { 5 // can be invoked on lvalue 6 void f() &; 7 8 // can be invoked on rvalu 阅读全文
posted @ 2020-03-16 00:12 kaizenly 阅读(584) 评论(0) 推荐(0) 编辑
摘要:【1】std::function简介 std::function是一个函数包装器模板,最早来自boost库,对应其boost::function函数包装器。 一个std::function类型对象实例可包装以下可调用元素类型如下: (1)函数 (2)函数指针 (3)类成员函数指针 (4)任意类型的函 阅读全文
posted @ 2020-03-01 01:42 kaizenly 阅读(1960) 评论(0) 推荐(1) 编辑
摘要:【1】spdlog简介 spdlog是一个开源的、快速的、仅有头文件的基于C++11实现的一款C++专用日志管理库。 【2】源码下载 下载地址:https://github.com/gabime/spdlog 【3】工程配置 (1)解压缩源码包 解压后,找到include文件夹。类比本地: 注意:i 阅读全文
posted @ 2020-02-28 02:16 kaizenly 阅读(8145) 评论(0) 推荐(1) 编辑
摘要:【1】复现错误 error c2663: n个重载没有“this”指针的合法转换 错误示例代码: 1 #include <iostream> 2 using namespace std; 3 4 class Student 5 { 6 public: 7 Student(string name, s 阅读全文
posted @ 2020-02-25 00:34 kaizenly 阅读(2359) 评论(0) 推荐(0) 编辑
摘要:【1】作者简介 【2】库 https://github.com/nlohmann/json 【3】应用示例 (1)工程配置 (2)示例代码 1 #include <string> 2 #include <vector> 3 #include <fstream> 4 #include <iostrea 阅读全文
posted @ 2020-02-16 23:45 kaizenly 阅读(6494) 评论(0) 推荐(0) 编辑
摘要:当然,从官网下载对应版本包进行升级是其中一种方式。 温馨提示:以下方法基于默认原CMake版本是在安装Python的基础上进行安装的。 CMake安装:在安装Python后,通过命令pip install cmake安装。 【1】卸载旧版本 以管理员身份运行Cmder,查看目前版本号(本地为3.15 阅读全文
posted @ 2020-02-15 23:48 kaizenly 阅读(3812) 评论(0) 推荐(0) 编辑
摘要:由于不同的IDE中Tab键的宽度不一样,所以为了让在不同的IDE中看到相同的缩进效果,在一些代码规范标准中通常要求将Tab键换成4个空格表示。 【1】如何在VS中设置输入Tab键后智能转换为键入4个空格? 设置步骤:工具 ->选项 ->文本编辑器 ->所有语言 ->制表符 (1)选中“智能” (2) 阅读全文
posted @ 2020-02-15 23:14 kaizenly 阅读(5155) 评论(0) 推荐(1) 编辑
摘要:本地版本 Microsoft Visual Studio Community 2019 【1】Visual Studio 2019 UTF-8编码调试显示中文 (1)修改stl.natvis文件 1.1 文件位置:建议使用everything直接搜索文件名 1.2 参考本地位置:E:\Program 阅读全文
posted @ 2020-02-10 00:55 kaizenly 阅读(5561) 评论(0) 推荐(0) 编辑
摘要:在C++中,声明自定义的类型之后,编译器会默认生成一些成员函数,这些函数被称为默认函数。其中包括 (1)(默认)构造函数 (2)拷贝(复制)构造函数 (3)拷贝(复制)赋值运算符 (4)移动构造函数 (5)移动赋值运算符 (6)析构函数 另外,编译器还会默认生成一些操作符函数,包括 (7)opera 阅读全文
posted @ 2020-02-01 03:36 kaizenly 阅读(8112) 评论(2) 推荐(2) 编辑
摘要:【1】constexpr VS const const修饰的都是具有运行时常量性; constexpr修饰的都是具有编译时常量性; 假如你将一个成员函数标记为constexpr,则顺带也将它标记为了const。如果你将一个变量标记为constexpr,则同样它是const的。 但相反并不成立,一个c 阅读全文
posted @ 2020-02-01 01:12 kaizenly 阅读(905) 评论(0) 推荐(1) 编辑
摘要:【1】C++11智能指针 (1)废弃auto_ptr auto_ptr应用示例: 1 auto_ptr<string> p1(new string("auto_ptr")); 2 auto_ptr<string> p2; 3 p2 = p1; // auto_ptr不会报错 此语句 p2 = p1; 阅读全文
posted @ 2020-01-31 22:32 kaizenly 阅读(294) 评论(0) 推荐(0) 编辑
摘要:【1】枚举:分门别类与数值的名字 当程序中需要“数值的名字”时,通常有三种方式实现: (1)宏 1 #define Male (0) 2 #define Female (1) 缺点:如果代码中右Male或者Femal字符串,在预处理阶段一律替换,干扰正常代码。 (2)匿名的enum enum { M 阅读全文
posted @ 2020-01-31 18:36 kaizenly 阅读(1507) 评论(0) 推荐(0) 编辑
摘要:【1】基于范围的for循环演化过程 (1)C++98传统写法 1 // C++98 传统写法 2 3 #include <iostream> 4 using namespace std; 5 6 int main() 7 { 8 int arr[5] = { 1, 2, 3, 4, 5 }; 9 1 阅读全文
posted @ 2020-01-31 17:25 kaizenly 阅读(399) 评论(0) 推荐(0) 编辑
摘要:【1】追踪返回类型的引入 为什么要引入追踪返回类型? 在C++98中,如果一个函数模板的返回类型依赖于实际入口参数类型,那么该返回类型在模板实例化之前可能都无法确定。 还记得Sum模板函数吗?请看如下演化过程: 1 #include <iostream> 2 using namespace std; 阅读全文
posted @ 2020-01-31 16:09 kaizenly 阅读(748) 评论(0) 推荐(0) 编辑
摘要:【1】typeid与decltype C++98对动态类型支持就是C++中的运行时类型识别(RTTI)。 (1)typeid RTTI的机制是为每个类型产生一个type_info类型的数据,可以在程序中使用typeid随时查询一个变量的类型,typeid就会返回变量相应的type_info数据。 t 阅读全文
posted @ 2020-01-30 23:18 kaizenly 阅读(618) 评论(0) 推荐(0) 编辑
摘要:【1】静态类型、动态类型与类型推导 静态类型和动态类型的主要区别在于对变量进行类型检查的时间点: 静态类型,类型检查主要发生在编译阶段; 动态类型,类型检查主要发生在运行阶段。 类型推导示例如下: 1 int main() 2 { 3 double foo(); 4 auto x = foo(); 阅读全文
posted @ 2020-01-30 02:27 kaizenly 阅读(791) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 10 下一页
打赏

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示