摘要:
仿函数(Functor) 仿函数是通过重载()运算符的类或结构体的对象。这样一个对象可以像普通函数一样被调用。 仿函数通常用于需要在对象内部保留状态或多次调用时有特定行为的情况。 特点: 仿函数是一个类对象。 通过重载 () 运算符使得类对象像函数一样可以被调用。 可以在类中保留状态或成员变量,提供 阅读全文
摘要:
https://zhuanlan.zhihu.com/p/68516038 原文链接 https://www.jianshu.com/p/9d8296562806 跳表索引动态更新 当频繁地向跳表中插入数据时,如果插入过程不伴随着索引更新,就有可能导致某2个索引节点之间数据非常多,在极端地情况下,跳 阅读全文
摘要:
1. decltype 的作用 decltype 是C++11引入的一个关键字,用来推断表达式的类型。它返回的是表达式的精确类型,包括引用和const限定符等。 例子: int x = 5; decltype(x) y = x; // y 的类型是 int 在这个例子中,decltype(x)返回 阅读全文
摘要:
左值引用指向左值 右值引用指向右值 int a = 5; int &ref_a = a; // 左值引用指向左值,编译通过 int &ref_a = 5; // 左值引用指向了右值,会编译失败 int &&ref_a_right = 5; // ok int a = 5; int &&ref_a_l 阅读全文
摘要:
C++ 中的 Lambda 函数 在C++11及以后版本中,Lambda函数(或称为匿名函数)是一种内联函数,可以在函数内部或任何其他地方定义,甚至可以立即传递给其他函数。 Lambda函数的语法更加灵活,允许捕获变量和处理复杂的行为,非常适合在需要简单函数的场景中使用。 语法 [capture]( 阅读全文
摘要:
在 C++ 中,auto 作为返回值类型有一些限制,这与类型推导的方式和时机有关。 虽然在很多场景下 auto 可以简化代码,但它不能直接用于函数返回类型,这是因为在编译时类型推导的机制不同于局部变量的类型推导。 具体原因如下: 1. 推导时机问题 当我们在函数体中使用 auto 声明变量时,编译器 阅读全文
摘要:
在 C++ 中,std::string::find() 是一个用于在字符串中查找子字符串或字符的成员函数。查找成功时返回匹配的索引位置,查找失败时返回 std::string::npos,表示未找到。 std::string::find() 函数原型 std::size_t find(const s 阅读全文
摘要:
std::stod 是 C++ 标准库中一个用于将字符串转换为 double 类型的函数。它属于 <string> 头文件中的函数,通常用于将包含数字的字符串转换为相应的浮点数值。 函数原型 double stod(const std::string& str, std::size_t* pos = 阅读全文
摘要:
std::optional 是 C++17 中引入的一个模板类,用于表示一个值可能存在也可能不存在的情况。 它可以存储一个值,或者表示没有值的状态,类似于其他编程语言中的“可选”类型。 std::optional主要特性: 值的存在性:可以使用 has_value() 方法检查 std::optio 阅读全文
摘要:
std::string_view 和 std::stringstream 都是 C++ 中处理字符串的工具,但它们的设计目标和使用场景非常不同。我们可以通过几方面进行对比。 1. 设计目的和核心功能 std::string_view: 设计用于只读访问字符串或字符序列。 是一个轻量级的字符串视图,不 阅读全文