- 博客(155)
- 资源 (14)
- 收藏
- 关注
原创 C++11中引入的thread
C++11 通过 std::thread 和其他相关的类和函数(如 std::mutex、std::lock_guard、std::condition_variable 和 thread_local)为多线程编程提供了强大的支持。std::thread 是一个表示执行线程的类,它提供了创建和管理线程的基本功能。每个 std::thread 对象都与一个执行线程相关联。当 std::thread 对象被创建时,它会启动一个新的执行线程,该线程会执行传递给 std::thread 构造函数的函数或可调用对象。
2024-09-22 21:39:25
1502
原创 C++11中的模板别名
模板别名允许程序员以更简洁、更具可读性的方式引用复杂的模板类型,尤其是在涉及模板元编程或高度泛型的代码库时。模板别名可以通过 using 关键字来声明。这里,AliasName 是你选择的别名,TypeOrTemplateName 是你想要引用的模板类型或模板名称,而 Args... 是模板参数,可以是零个或多个。总的来说,C++11中的模板别名是一种强大的特性,它使得模板类型的引用更加简洁和灵活,是泛型编程和模板元编程中不可或缺的工具。
2024-09-21 20:50:22
604
原创 C++11中的array类型
C++11标准中引入的std::array是一个固定大小的容器,它封装了C风格的数组,同时提供了更多的功能和类型安全。std::array定义在头文件<array>中,它是一个模板类,模板参数包括存储元素的类型和数组的大小。与std::vector相比,std::array的大小在编译时就已确定,并且不支持动态调整大小。std::array提供了一系列成员函数,比如size()来获取数组的大小,begin()和end()来获取指向数组首元素和尾元素之后位置的迭代器等。的方式来处理固定大小的数组。
2024-09-19 09:23:51
461
原创 C++11中的统一初始化列表
C++11 引入了统一初始化列表(Uniform Initialization List),也被称为列表初始化(List Initialization)或大括号初始化(Brace Initialization),它为 C++ 中的对象初始化提供了一种更加通用和清晰的方式。总之,C++11 中的统一初始化列表为 C++ 编程带来了很多便利和优势,它使得代码更加清晰、类型更加安全,并且支持更加灵活的初始化方式。:在模板编程中,统一初始化列表可以确保类型安全,因为编译器可以更准确地推断出类型。
2024-09-18 20:34:51
509
原创 禁用win10的自动更新功能
开始->运行(win + r)->gpedit.msc->计算机配置->管理模板->windows组件->windows更新->①配置自动更新(禁用)、②删除使用所有windows更新功能的访问权限(启用)开始->运行(win + r)->taskschd.msc->Microsoft->Windows->WindowsUpdate->Scheduled Start(禁用)开始->设置(win + i)->更新和安全->高级选项->暂停更新(只能暂停35天)
2024-09-15 22:46:00
483
原创 C++11中新引入的enum类型
在C++11中,引入了一个新的枚举类型——enum class(或称为作用域枚举类型),它相较于传统的enum类型有几个关键的不同点。enum class提供了更强的类型检查和封装,减少了命名冲突的可能性,并允许更加清晰地表达枚举的意图。enum class是C++11引入的一种新的枚举类型,它通过提供作用域限定、避免隐式类型转换以及允许指定底层类型等方式,改进了传统枚举类型(enum)的使用。此外,传统枚举的作用域是从声明点到声明该枚举的文件末尾,这可能会导致在不同上下文中名称的冲突。
2024-09-06 21:39:36
467
原创 C++11中的static_assert运算
static_assert 是 C++11 引入的一个非常有用的编译时断言机制,它允许开发者在编译时检查代码中的条件是否满足,如果条件不满足,则编译器会报错,从而阻止编译过程的继续。这种机制在模板元编程、类型安全的检查以及确保代码在编译时满足特定条件等方面非常有用。二、static_assert 的基本语法。2、检查模板参数是否为特定类型。
2024-09-04 20:16:44
501
原创 C++11中的constexpr
在C++11及以后的版本中,constexpr关键字被引入,用以表示常量表达式(Constant Expression)。常量表达式是值在编译时就能确定,并且在程序运行期间不会改变的表达式。使用constexpr,开发者可以指定函数或变量为编译时常量,这有助于提升程序的性能和可读性。总的来说,constexpr是C++11引入的一个非常有用的特性,它允许开发者编写在编译时就能确定值的代码,从而可能带来性能上的提升和代码上的优化。这意呀着constexpr变量一旦被定义,其值就。constexpr变量。
2024-09-03 22:22:38
414
原创 C++11 中的move和forward函数
它接受一个参数(通过通用引用,即模板类型参数的右值引用),并返回该参数的右值引用(或对于左值参数,在概念上返回一个左值引用,尽管实际上是通过返回右值引用来模拟的)。总之,std::move 和移动语义是C++中用于优化性能和资源管理的重要工具,通过允许对象在赋值或初始化时转移资源而非复制它们,它们可以减少不必要的资源复制并提高程序效率。但是,实际使用时,我们通常会通过std::forward_as_tuple或直接在模板函数中使用std::forward来利用C++的类型推导特性,使得代码更简洁。
2024-09-02 22:13:41
1159
原创 C++中的右值引用
C++11引入了许多新特性,其中右值引用(Rvalue References)是一个非常重要的概念,它极大地增强了C++处理临时对象和移动语义的能力。右值引用通过类型后加&&来标识,它允许我们区分对象的值类别(左值或右值),进而可以编写更灵活、效率更高的代码。通过decltype可以获取表达式的类型,并使用std::is_lvalue_reference和std::is_rvalue_reference来检查这个类型是否是左值引用或右值引用。不过,它们的使用场景暗示了表达式的预期角色(作为右值传递)。
2024-09-01 20:03:40
1066
原创 C++11中的nullptr
NULL 通常是宏定义,其值在 C 中通常定义为 (void*)0,在 C++ 中可能定义为 0 或 (void*)0,这取决于编译器和平台。nullptr 可以与 C++ 标准库中的智能指针(如 std::unique_ptr 和 std::shared_ptr)一起使用,以表示空智能指针。然而,在这些情况下,通常不需要显式地比较智能指针是否为 nullptr,因为智能指针提供了自己的空状态检查方法(如 unique_ptr::operator bool())。二、nullptr的优势。
2024-08-31 21:21:30
495
原创 C++11中的lambda匿名函数
从输出的地址可以知道,lambda函数内的变量x与函数外的变量x不是同一个变量,只是用外部x变量的值初始化了函数内的x变量(相当于传值的形参)。x以引用传递,y以值传递,所以在lambda函数内修改的x是函数外的x,而y则是lambda函数内的y,与函数外的y不是同一个变量。同时增强了函数式编程的能力。捕获的变量(如果是引用捕获)在lambda函数体之外的生命周期结束时,引用可能变为悬空引用,使用时需要特别注意。从输出的地址可以知道,lambda函数内的变量x与函数外的变量x是同一个变量(地址相同)。
2024-08-30 21:57:00
1089
原创 C++11中新增的for功能
C++11中新增的for循环功能,通常被称为范围基于的for循环(Range-based for loop),它是一种简化的for循环语法,用于遍历容器(如数组、std::vector、std::list等)或其他序列中的所有元素。总的来说,C++11中的范围基于的for循环是一个强大且方便的特性,它极大地简化了遍历容器和序列的代码编写。collection:可以迭代的集合类型,如数组,及STL中的大部分容器(stack和queue不可以)。datatype:表示某一数据类型,常使用auto自动推断。
2024-08-29 22:38:37
847
原创 C++11中的decltype关键字
注意:在上面例子中的 auto&& iterator ,虽然 decltype 可以推导出 iterator 的类型(包括引用类型),但在这个特定的上下文中,使用 auto&& 主要是为了转发引用(也称为通用引用),而不是为了捕获迭代器的引用类型。在以上这个例子中,getElement 函数使用了 decltype(c[i]) 来推导其返回类型,这确保了函数能够返回与容器中元素相同的类型。在模板编程中,经常需要根据模板参数的类型来推导函数的返回类型。1. 模板函数返回类型推导。,只是用来查询其类型。
2024-08-28 21:24:37
897
原创 C++11更新的特性
一、auto关键字二、decltype关键字三、for迭代循环四、lambda匿名函数五、智能指针: shared_ptr、unique_ptr、weak_ptr六、右值引用&&七、移动语义:move, forward八、空指针常量:nullptr九、常量表达式关键字:constexpr十、静态断言:static_assert十一、类枚举:enum class十二、统一初始化列表:initiallize_list: {}十三、堆数组:arra
2024-08-27 21:34:17
327
原创 C++11中的auto关键字
auto不能用于函数声明中代替返回类型,但在C++14及更高版本中,你可以使用auto在函数声明中的尾置返回类型(trailing return type)来指示函数的返回类型,但这种情况下auto不是用来推导局部变量或函数参数的类型,而是用于指定函数的返回类型依赖于其参数的类型或函数体内的其他逻辑。虽然auto可以推导出指针和引用的类型,但对于复杂的指针和引用类型(如多层指针、指向数组的指针等),auto的使用可能会让代码可读性变差。使用auto可以自动推导迭代器的类型,使代码更简洁。
2024-08-27 21:33:21
755
原创 C++中的智能指针介绍及使用
在这个示例中,A类持有一个指向B的std::shared_ptr,而B类持有一个指向A的std::weak_ptr。与 std::unique_ptr 不同,std::shared_ptr 允许多个 shared_ptr 实例共享对同一对象的所有权。std::weak_ptr 通常是通过一个 std::shared_ptr 来创建的,这样它就指向了由 std::shared_ptr 管理的同一个对象。与 std::unique_ptr 不同,std::shared_ptr 支持复制操作,这会增加引用计数。
2024-08-26 21:30:28
1618
原创 dev c++中,在C++11模式下编译带M_PI宏的文件报错的解决办法
当使用C++11的模式,编译引用了math库中的M_PI的源文件时,报M_PI未声明的错误。
2024-08-14 16:35:43
609
原创 C++中的const_cast函数
const_cast是 C++ 中的一个类型转换操作符,它用于去除类型的const或volatile限定符。这意味着,如果你有一个指向常量数据的指针或引用,const_cast可以让你去掉这个常量性,从而能够修改数据。同样地,它也可以用于去除volatile限定符,但这种情况较为少见。
2024-07-24 10:44:16
626
原创 C++中的reinterpret_cast函数
是 C++ 中的一个类型转换操作符,它提供了一种低级别的转换机制,允许将任何指针(或引用)类型转换为任何其他指针(或引用)类型,以及将整数类型转换为指针类型或将指针类型转换为整数类型。基本上会告诉编译器:“我知道我在做什么,请按照我指定的方式重新解释这个类型的位模式。
2024-07-24 08:33:20
588
原创 C++中的dynamic_cast函数
是 C++ 中的一个类型转换操作符,它主要用于处理类的层次结构中的安全向下转换(即将基类类型的指针或引用转换为派生类类型的指针或引用)。与不同,在运行时检查转换的安全性,如果转换不安全(即基类指针或引用实际上并不指向派生类对象),则转换会失败。
2024-07-24 08:27:54
359
原创 C++中的static_cast函数
是 C++ 中的一个类型转换操作符,用于在编译时进行类型转换。它主要用于基本数据类型之间的转换,以及类的指针或引用之间的向上转换(将派生类指针或引用转换为基类指针或引用)和某些情况下的向下转换(将基类指针或引用转换为派生类指针或引用,但需要注意这种转换的安全性)。
2024-07-23 22:18:50
850
原创 Linux中找不到locate命令
因为locate命令依赖于mlocate,所以要安装mlocate。这样就可以使用locate命令了。运行:locate -l 10 passwd。所使用的数据库文件的相关信息,包括该数据库纪录的文件。:输出几行的意思,例如只要输出五行则是。:不输出文件名,仅计算找到的文件数量。:后面可接正则表达式的匹配模式。
2024-05-17 08:52:04
1294
1
原创 提高Rust安装与更新的速度
请参考博客:Rust使用国内Crates 源、 rustup源 |字节跳动新的 Rust 镜像源以及安装rust_rustup 国内源-优快云博客
2024-05-06 09:08:55
2931
1
原创 Windows API函数之WNetAddConnection2
WNetAddConnection2 是一个Windows API函数,用于建立与网络资源(如网络驱动器或共享文件夹)的连接。
2024-04-24 17:17:26
1169
原创 MIME类型大全
后面为对应的MIME型(例如:rar application/x-rar-compressed 表示。RAR对应的是application/x-rar-compressed )
2023-07-08 09:20:24
855
转载 jar工具详解
JAR(Java Archive)文件格式能够将多个文件打包到单个归档文件中。通常,JAR 文件包含应用程序相关联的 .class 文件和辅助资源文件。安全性:您可以对 JAR 文件的内容进行数字签名。识别您的签名的用户可以选择允许您的软件安全权限,否则它不会拥有。减少传输时间和存储空间:Jar 文件本质上是一个 ZIP 压缩文件,打包之后文件总大小会变小,单个稍小的 Jar 文件进行文件传输时可以大大减少文件 IO 操作次数和流的传输长度,从而减少传输时间,同时也减少了存储空间。
2023-06-08 13:10:31
1618
1
原创 javaFX ...because module javafx.graphics does not export...
最后一行应该是首选,因为它是限制性更强的一行。如果除非包中还包含例如。使用反射使用反射创建应用程序类的实例。)的包中,则仅允许通过反射来访问您的类。类/方法,则应使用第一行。之类位于打开或导出到。
2023-06-07 17:24:59
704
1
Autodesk Design Review 2013 API(DWF)
2012-07-23
Dwr2.0中文手册
2011-10-01
Java正则表达式详解
2011-10-01
spring2.5-中文参考手册.pdf
2010-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人