上一页 1 2 3 4 5 6 ··· 9 下一页

2023年10月7日

Effective C++——Item33: 避免隐藏继承的名字

摘要: Effective C++——Item33: 避免隐藏继承的名字 一、从原理理解隐藏 从变量作用域看隐藏 全局变量x和局部变量x的类型是不同的,但C++的隐藏规则:只隐藏名字(hiding names)。 int x; // global variable void someFunc() { dou 阅读全文

posted @ 2023-10-07 22:06 七昂的技术之旅 阅读(7) 评论(0) 推荐(0) 编辑

2023年7月9日

【设计模式】策略模式与简单工厂结合

摘要: # 策略模式 > 大话设计模式 ## 什么是策略模式(Strategy)? 它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用 阅读全文

posted @ 2023-07-09 15:25 七昂的技术之旅 阅读(67) 评论(0) 推荐(0) 编辑

2023年6月28日

为什么在 C++ 中,类的静态成员变量需要在源文件中进行定义?

摘要: # 为什么在 C++ 中,类的静态成员变量需要在源文件中进行定义? 类的静态成员变量需要在源文件中进行定义,以便在链接阶段能够正确地分配内存并为其分配地址。 当你在类的头文件中声明一个静态成员变量时,这只是告诉编译器该变量存在,并将在某处定义。这是因为头文件通常被包含在多个源文件中,如果在头文件中进 阅读全文

posted @ 2023-06-28 19:25 七昂的技术之旅 阅读(50) 评论(0) 推荐(0) 编辑

2023年4月13日

C++性能优化——能用array就不要用unordered_map作为查询表

摘要: unordered_map需要哈希值计算和表查询的开销,当key值为整数且连续,直接用数组作为查询表具有更高的效率。 #include <iostream> #include <chrono> #include <unordered_map> using namespace std; long lo 阅读全文

posted @ 2023-04-13 10:35 七昂的技术之旅 阅读(105) 评论(0) 推荐(0) 编辑

2023年4月10日

C++ STL vector 性能之push_back、emplace_back、reserve

摘要: #include <iostream> #include <vector> #include <chrono> using namespace std; constexpr int N = 10; void timeMeasure(void(*f)()){ auto begin = std::chr 阅读全文

posted @ 2023-04-10 15:15 七昂的技术之旅 阅读(72) 评论(0) 推荐(0) 编辑

2023年3月8日

C++ 性能反向优化——用哈希表unordered_map消除if else导致性能降低。

摘要: 从代码整洁的角度考虑,对于不同的值将调用相同参数的不同函数,我们通常可以通过建立从值到对应函数指针的哈希表,从而将if else消除。但实际可能使性能更低,以下是测试例子。 原因在于,if else分支预测不正确虽然可能使指令流水线几条指令执行错误,但通过哈希表的方式,增加了计算哈希值、查询哈希表以 阅读全文

posted @ 2023-03-08 14:55 七昂的技术之旅 阅读(154) 评论(0) 推荐(0) 编辑

2023年2月23日

C++11 变长参数模板 & 如何展开变长参数

摘要: https://blog.csdn.net/CodeBowl/article/details/119902935 通过typename ... Args指定变长参数。 通常通过递归展开各个参数, 使用sizeof ... (args)获取变长参数个数。 C++17 可以使用对if后的表达式使用con 阅读全文

posted @ 2023-02-23 10:35 七昂的技术之旅 阅读(50) 评论(0) 推荐(0) 编辑

2023年2月21日

C++ 用同一个raw pointer传入shared_ptr构造函数生成两个智能指针有什么问题?

摘要: Effective Modern C++ Item 19: use std::shared_ptr for shared-ownership resource Now, the constructor for spw1 is called with a raw pointer, so it crea 阅读全文

posted @ 2023-02-21 16:47 七昂的技术之旅 阅读(23) 评论(0) 推荐(0) 编辑

2023年2月20日

C++ getline整行读入以及使用stringstream 按分隔字符split出单词

摘要: 问题:直接通过while(cin>>str), 遇到空格就会停止。比如,输入dfah adfj djfak只能输入前两个单词。 解决: 要读入一整行,需通过getline(cin, inputLine)读入。 按分隔符split字符串,使用getline(stringstream, string, 阅读全文

posted @ 2023-02-20 15:36 七昂的技术之旅 阅读(153) 评论(0) 推荐(0) 编辑

2023年2月12日

Rust智能指针

摘要: Rust智能指针 https://course.rs/advance/smart-pointer/intro.html Box 堆对象分配 Box指针拥有内存对象的独占使用权 (一)使用场景 1. 使用 Box 将数据存储在堆上 fn main() { let a = Box::new(3); pr 阅读全文

posted @ 2023-02-12 17:25 七昂的技术之旅 阅读(205) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 9 下一页

导航