Auto_Car6
天行健,君子以自强不息,地势坤,君子以厚德载物
展开
-
C++之std::lower_bound和std::upper_bound
和是 C++ 标准库中在有序范围内查找元素的函数,分别用于找到第一个不小于目标值和第一个大于目标值的位置。它们在头文件中定义,通常用于有序的容器(如或std::array),且时间复杂度为 (O(\log n))。原创 2024-10-31 14:01:19 · 44 阅读 · 0 评论 -
C++之std::remove_reference
是 C++ 标准库中的一个类型萃取(type trait)工具,用于移除类型中的引用部分。如果类型是左值引用或右值引用,它会移除这些引用并返回没有引用修饰的原始类型。原创 2024-10-23 09:44:08 · 156 阅读 · 0 评论 -
C++之std::forward
是 C++11 引入的一个标准库函数模板,用于实现。它通常在函数模板中将参数以其原始类型(左值或右值)正确地传递给另一个函数或构造函数。其核心作用是保留参数的值类别(左值或右值),以确保参数传递的高效性。原创 2024-10-18 10:47:09 · 412 阅读 · 0 评论 -
C++之std::numeric_limits
在 C++ 中,是一个模板类,它用于查询各种数据类型(如整数、浮点数等)的属性。对于浮点类型(如double),提供了几个静态成员函数和静态常量,用于获取该类型的属性。是一个静态成员函数,它返回double类型能够表示的最小的有限值。与不同,后者返回的是最小的正值(最接近 0 的正数)。以下是一个使用。原创 2024-05-21 10:33:53 · 488 阅读 · 0 评论 -
C++ 之emplace_back 和 push_back
直接在容器内构造元素。选择使用哪种方式取决于你的需求和性能考虑。通常来说,如果你需要直接在容器中构造元素,并且有可能带来性能优势,那么使用。都是用于将元素添加到容器的操作,但它们之间有一些关键的区别。需要调用移动构造函数,而。原创 2024-03-12 11:51:43 · 409 阅读 · 0 评论 -
C++之std::move
是C++标准库中的一个函数模板,用于将其参数转换为右值引用。这通常用于移动语义,用于在避免不必要的复制的情况下,将资源(例如内存、文件句柄等)从一个对象转移到另一个对象。并不会真正移动任何资源,它只是将一个左值(通常是具有名称的对象)强制转换为右值引用,告诉编译器可以使用移动语义。实际的资源移动发生在移动构造函数或移动赋值运算符中。转换为右值引用,从而触发移动构造函数。的赋值操作也利用了移动赋值运算符。是C++11引入的特性。原创 2024-03-12 11:49:54 · 757 阅读 · 0 评论 -
C++之std::any
/ 存储自定义类型// 检索并使用自定义类型try {constpublic :int value_;// 存储自定义类型 std :: any myClassValue = MyClass(42);// 检索并使用自定义类型 try {} return 0;return 0;原创 2024-03-06 19:09:42 · 861 阅读 · 0 评论 -
c++之std::optional
是一个强大的工具,用于处理可能不存在值的场景,避免了使用指针或特殊值(如 -1)来表示缺失的一些问题。是 C++17 引入的一个标准库类型,它表示一个可能有值的容器。可以包含值,也可以不包含值(即为空)。这使得它成为处理可能缺失值的一种方式。上述示例演示了一些常见的。原创 2024-01-23 19:54:14 · 605 阅读 · 0 评论 -
C++之Lambda表达式
Lambda 表达式是 C++11 引入的一项功能,它允许你在代码中创建匿名函数。Lambda 表达式的主要优点是可以在需要函数的地方轻松定义和使用函数,而不必显式编写函数的完整定义。原创 2023-12-20 14:31:11 · 373 阅读 · 0 评论 -
C++ std::decay_t用法
是 C++14 中引入的一个类型转换工具,位于头文件中。它用于在某些上下文中获取一个类型的衰减(decay)类型,即移除引用、数组和函数类型,得到原始类型。原创 2023-11-15 15:52:07 · 2462 阅读 · 0 评论 -
C++ std::string_view用法
是 C++17 中引入的一个非拥有(non-owning)字符串视图类,用于提供对字符串的轻量级、零开销的访问。它不拥有字符串的内存,而是引用已存在的字符串数据。可以用于代替或,提供更方便、安全和高效的字符串操作。原创 2023-11-15 14:41:03 · 864 阅读 · 0 评论 -
C++ std::make_unique和std::make_shared用法
和是 C++11 引入的两个辅助函数,用于创建动态分配的智能指针和,分别帮助避免了显式使用new和delete,从而提高代码的安全性和可读性。原创 2023-11-14 15:10:51 · 1040 阅读 · 0 评论 -
C++ 类型转换static_cast、dynamic_cast、const_cast、reinterpret_cast用法以及区别
在运行时进行类型检查,只能用于含有虚函数的类层次结构,并且只能用于将指向基类的指针或引用转换为派生类的指针或引用。用于进行静态类型转换,主要用于相关类型之间的转换,例如数值类型之间的转换、基类到派生类的转换(在安全的情况下)。总体来说,这些类型转换操作符应该谨慎使用,尽量避免在不必要的情况下进行强制类型转换,以减少代码的脆弱性。用于进行低级别的类型转换,将一个指针类型转换为另一种指针类型,或者将任何类型的指针转换为。它是一种较为危险的转换,因为它不进行类型检查,主要用于底层编程。限定,或者在需要时添加。原创 2023-11-14 14:20:41 · 86 阅读 · 0 评论 -
C++ std::find_if用法
是 C++ 标准库中的一个算法函数,用于在指定范围内查找满足特定条件的元素,并返回第一个满足条件的元素的迭代器。用于查找第一个大于 5 的元素,并返回指向该元素的迭代器。如果找到,则输出该元素的值,否则输出未找到的消息。原创 2023-11-14 10:47:28 · 2635 阅读 · 0 评论 -
c++ basic_string 和string区别
可以轻松地扩展到其他字符类型的字符串,而不仅限于。这样设计的好处是,通过使用模板类。模板类被设计为支持多种字符类型,而。是其中一种特定字符类型的字符串类。的一种特例,专门用于处理。的一个具体实例化,即。原创 2023-11-13 19:55:02 · 660 阅读 · 0 评论