02 2023 档案

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

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

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 七昂的技术之旅 阅读(84) 评论(0) 推荐(0)

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

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

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 七昂的技术之旅 阅读(595) 评论(0) 推荐(0)

《Rust权威指南》学习笔记——8.通用集合类型
摘要:Rust通用集合类型 动态数组Vec 字符串String 和&str 哈希映射HashMap 阅读全文

posted @ 2023-02-10 14:20 七昂的技术之旅 阅读(25) 评论(0) 推荐(0)

Modern C++ ——constexpr的各种用法
摘要:Modern C++ ——constexpr的用法 Reference 《现代C++语言核心特性解析》、《深入理解C++11》 为什么引入constexpr const可以定义常量,但也可以用来定义只读变量。const变量的值不一定是在编译期可以确定的,比如当通过函数返回值进行初始化时。 C++标准 阅读全文

posted @ 2023-02-10 14:18 七昂的技术之旅 阅读(823) 评论(0) 推荐(0)

《Rust权威指南》学习笔记——4. 认识所有权
摘要:Rust权威指南学习笔记——认识所有权 什么是所有权 1. 所有权规则 Rust中的每一个值都有一个对应的变量作为它的所有者。 在同一时间内,值有且仅有一个所有者。 当所有者离开自己的作用域时,它持有的值就会被释放掉。 2. 变量作用域 s在进入作用域后变得有效。 它会保持自己的有效性直到自己离开作 阅读全文

posted @ 2023-02-09 00:19 七昂的技术之旅 阅读(65) 评论(0) 推荐(0)

C++内存泄漏——原因、避免以及定位
摘要:https://bbs.huaweicloud.com/blogs/351858 阅读全文

posted @ 2023-02-07 00:34 七昂的技术之旅 阅读(61) 评论(0) 推荐(0)

The Semantics of Constructors——2.4 成员初始化列表
摘要:2.4 成员初始化列表(Member Initialization List) 当你写下一个constructor时,就有机会设定class members的初值。要不是经由member initialization list,就是在constructor函数本体之内。 1. 在下列情况下,为了让你 阅读全文

posted @ 2023-02-07 00:32 七昂的技术之旅 阅读(77) 评论(0) 推荐(0)

The Semantics of Constructors——2.3 程序转化语意学
摘要:2.3 程序转化语意学 #include "X.h" X foo() { X xx; return xx; } 一个人可能会对代码做出以下假设: 每次 foo()被调用,就传回 xx的值。 如果 class X定义了一个 copy constructor,那么当 foo()被调用时,保证该copy 阅读全文

posted @ 2023-02-07 00:31 七昂的技术之旅 阅读(44) 评论(0) 推荐(0)

The Semantics of Constructors——2.2 拷贝构造函数的构造操作
摘要:The Semantics of Constructors 2.2.1 Default Memberwise Initialization(默认的逐成员初始化) 如果class没有提供一个explicit copy constructor又当如何?当class object 以“相同 class 的 阅读全文

posted @ 2023-02-07 00:31 七昂的技术之旅 阅读(44) 评论(0) 推荐(0)

The Semantics of Constructors——2.1 默认构造函数的构造操作
摘要:The Semantics of Constructors 2.1 Default Constructor的构造操作 C++新手一般有两个常见的误解: 任何 class如果没有定义默认构造函数,就会被合成出一个来。 编译器合成出来的默认构造函数会显式设定“类内每一个数据成员的默认值”。 2.1.1 阅读全文

posted @ 2023-02-07 00:30 七昂的技术之旅 阅读(50) 评论(0) 推荐(0)

Effective C++ Item 11: 在operator=中处理自赋值问题
摘要:一、定义赋值运算符函数需要注意的问题: 返回值类型声明为引用,并在函数返回前返回*this。因为只有返回引用,才能允许连续赋值。 传入参数应声明为常量引用,否则从形参到实参会多调用一次拷贝构造函数,降低代码效率。赋值运算符函数不会改变传入的实例的状态,因此传入参数应添加const关键字。 是否释放实 阅读全文

posted @ 2023-02-06 15:02 七昂的技术之旅 阅读(398) 评论(0) 推荐(0)

Effective C++ Item 3 ——尽可能使用const;const成员函数如何改变类的成员变量
摘要:C++ const 一、 语义约束 一个特定的对象不应该被修改,即是只读的。 二、用法 1. 修饰全局范围或命名空间内的静态对象 2. 修饰类的静态或非静态成员 3. 修饰指针或指针指向的数据 const出现在星号左边,则指针所指的内容为只读的。 const出现在星号右边,则指针自身为只读的。 co 阅读全文

posted @ 2023-02-05 22:33 七昂的技术之旅 阅读(258) 评论(0) 推荐(0)

C++性能优化——likely和unlikely分支预测
摘要:C++性能优化——likely和unlikely分支预测 References C++之likely和unlikely C++ likely-unlikely-directives 一、背景知识:流水线技术 现代CPU为了提高执行指令执行的吞吐量,使用了流水线技术,它将每条指令分解为多步,让不同指令 阅读全文

posted @ 2023-02-03 10:10 七昂的技术之旅 阅读(1972) 评论(0) 推荐(1)

C++性能优化 —— __builtin_prefetch()数据预读
摘要:C++性能优化 —— __builtin_prefetch()数据预读 References __builtin_prefetch() Prefetching with __builtin_prefetch Data Prefetch 数据预取 数据预读对二分查找的优化 你见过哪些令你瞠目结舌的C/ 阅读全文

posted @ 2023-02-02 14:38 七昂的技术之旅 阅读(4320) 评论(0) 推荐(0)

导航