自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++14 新特性:std::make_unique 和 constexpr

double y;这里创建了一个MyClass的实例,并通过进行管理。是 C++14 中一个重要的补充,它提供了一种标准且安全的方式来创建和使用。C++14 中对constexpr函数的限制相较于 C++11 实际上是放宽了。constexpr指定符表示一个对象或函数的值可以在编译时计算。在 C++11 中,constexpr函数的限制比较严格,只允许包含非常有限的内容,比如单一的返回语句。而 C++14 放宽了这些限制,使得constexpr。

2024-06-14 09:02:51 450

原创 C++14 新特性:字面量和分隔符

C++14 继续沿用并扩展了 C++11 中引入的一些对字面量和分隔符的支持,提高了代码的可读性和编写的便捷性。这些特性包括二进制字面量、数字分隔符,以及用户自定义字面量的增强支持。

2024-05-20 09:30:00 294

原创 C++14 新特性:[[deprecated]] 属性

C++14 标准引入了 [[deprecated]] 属性,这是一个标准属性,用于标记程序中的类型、函数、变量、非静态数据成员以及模块等元素已经被弃用。

2024-05-19 09:30:00 763

原创 C++14 新特性:别名模板

C++14 中的别名模板是模板编程中一个强大的工具,它通过提供一种方式来定义模板的新名称,简化了复杂模板的使用,提高了代码的可读性和灵活性。

2024-05-18 09:30:00 212

原创 C++14 新特性:Lambda 参数 auto

C++14 中引入的允许 Lambda 表达式接收auto类型参数的特性,提高了 Lambda 表达式的灵活性和泛型编程能力。这样 Lambda 表达式不仅仅局限于处理特定类型的数据,而是可以应用于更广泛的场景,促进了代码的重用和简洁性。

2024-05-17 09:30:00 442

原创 C++14 新特性:变量模板

C++14 引入了变量模板(Variable Templates),允许模板被用来定义变量,进一步增强了 C++ 模板的能力和灵活性。在此之前,模板主要用于定义函数模板和类模板,而C++14 通过引入变量模板,允许我们为常量、对象或者其他值定义泛型版本,从而可以编写更加通用且复用性高的代码。

2024-05-17 09:30:00 364

原创 C++14 新特性:函数返回值类型推导

函数返回值类型推导是 C++14 一个重要的特性,它简化了函数声明,特别是在返回类型不明确或比较复杂时。

2024-05-16 09:30:00 381

原创 C++11 新特性:完美转发

接上篇文章,这篇介绍完美转发(Perfect Forwarding),这是一个高级特性,旨在解决函数模板中参数转发时可能出现的效率和正确性问题。完美转发允许我们将函数的参数以原始状态(包括其值类别,即是左值还是右值)传递给其他函数或构造函数,这在编写通用代码和库时特别重要。

2024-05-13 09:30:00 1236

原创 Redis 本机无法访问

我在服务器上有两个 Redis 实例,服务端口号分别是 6379 和 6380,Redis 服务器地址假设为 10.0.0.12。其中 6379 这个实例不需要密码即可访问,6380 需要密码访问。在正常使用几天后,本机突然无法访问 6379 这个实例,telnet 无法访问到端口。但是远程服务器 10.0.0.13 可以访问 Redis 服务器的 6379 实例。

2024-05-12 12:42:03 254

原创 Consul 注册的服务地址变成了 127.0.1.1

不用的云服务商提供的 Linux 服务器,都对系统做了一些定制,即使是同样的系统,例如 Ubuntu,也会有些许的不同。在进行服务迁移的时候,一些小的问题,也需要花费大力气解决。

2024-05-12 11:40:28 288 1

原创 C++11 新特性:移动语义

C++11 引入的移动语义是对 C++ 语言的一大改进,它提供了一种更有效的资源管理方式,特别是在处理大量数据或资源密集型对象时。移动语义通过引入右值引用(Right-Value Reference,标记为&&)和两个新的构造函数——移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment Operator)——来实现。这些新特性允许开发者优化程序性能,减少不必要的对象拷贝,从而提高效率。

2024-05-12 09:30:00 956

原创 C++11 新特性:右值引用

右值引用和移动语义是 C++11 标准引入的重要改进之一,为开发者提供了一个能写出更高效的代码语言特性,特别是在涉及大量资源管理和临时对象的场景。

2024-05-11 09:30:00 1232

原创 C++11 新特性:再谈 std::weak_ptr 的用法

std::weak_ptr 提供了一种机制,来观察和跟踪所管理的对象,而不延长其生命周期。这在解决循环引用、实现观察者模式、以及在特定场景下管理缓存时非常有用。

2024-05-10 09:30:00 738

原创 C++11 新特性:智能指针的用法

智能指针是现代 C++ 编程中管理资源和避免内存泄露的重要工具。非常适合用于管理资源的生命周期,如动态分配的内存、文件句柄等,下面我们通过示例代码来逐一说明智能指针的用法。

2024-05-09 09:30:00 413

原创 C++11 新特性:更强大的智能指针

C++11 智能指针的引入和改进,对 C++ 内存管理提供了现代化的、安全的机制,替代了裸指针和旧式的。通过使用和,C++ 程序员可以更轻松地编写安全、健壮的代码,避免内存泄露和指针悬挂问题。此外,和 C++14中 的提供了便捷和安全的方式来创建智能指针实例。

2024-05-08 09:30:00 330

原创 C++11 新特性:Lambda 捕获列表

Lambda 表达式的捕获列表定义了从定义 Lambda 的封闭作用域捕获哪些变量,以及如何捕获这些变量(通过值或引用)。捕获列表使得 Lambda 表达式能够访问并操作定义它的作用域之外的变量。

2024-04-30 09:00:00 271

原创 C++11 新特性:Lambda 表达式

C++11 引入的 Lambda 表达式是一种方便快捷的定义匿名函数对象的方式。Lambda 表达式允许在需要函数对象的地方直接定义和使用匿名函数,极大地提高了C++编程的灵活性和表达力。

2024-04-29 09:00:00 224

原创 C++11 新特性:多线程支持 - 异步操作的执行策略

std::async 函数用于异步执行一个任务,返回一个对象,该对象最终将持有函数的返回值,std::async可以接受一个启动策略作为其第一个参数,这些策略决定了任务的执行方式。

2024-04-26 09:00:00 254

原创 C++11 新特性:多线程支持 - std::atomic 原子操作

std::atomic是C++11中引入的一个模板类,用于实现原子操作,即在多线程环境下不可被中断的操作。这对于保证并发编程中数据的一致性和线程安全至关重要。

2024-04-25 09:00:00 527

原创 C++11 新特性:多线程支持 - notify_all 的用法

C++11 notify_all 方法用于唤醒所有等待该条件变量的线程,是在某些条件变化对所有等待线程都是有意义时的理想选择。

2024-04-24 10:00:00 489

原创 C++11 新特性:多线程支持 - 条件变量

为C++提供了一种强大的线程同步机制,特别适用于需要等待特定条件成立的场景。

2024-04-23 18:54:48 215

原创 C++11 新特性:多线程支持 - std::recursive_timed_mutex

std::recursive_timed_mutex 提供了一种灵活的方式来处理需要在同一线程中多次获取锁的情况,特别是在递归调用场景中。超时功能也增加了程序的健壮性,防止了因等待锁而导致的潜在死锁。

2024-04-21 11:36:42 202

原创 C++11 新特性:多线程支持 - std::timed_mutex

可以让线程在等待获取互斥量的过程中考虑超时,这对于需要避免长时间等待的场景特别有用。

2024-04-19 09:00:00 415

原创 C++11 新特性:多线程支持 - 互斥锁

C++11 的多线程库为开发者提供的线程同步工具,包括各种类型的锁。今天介绍的是最简单、最常用的互斥锁,最后一个示例用到了条件变量和它的通知机制,这个我后面文章会介绍其用法。通过上述示例,我们可以看到如何在实际编程中利用这些锁来保护共享数据,避免数据竞争和死锁等问题,确保程序的正确性和稳定性。

2024-04-18 09:00:00 349

原创 C++11 新特性:多线程支持 - 线程管理

本文介绍 C++11 中线程的创建、等待和分离的使用,通过代码示例展示它们的用法。

2024-04-17 09:00:00 266

原创 C++11 新特性:多线程支持概述

C++11 引入了对多线程的原生支持,这是一个重大的改进,使得众多开发者翘首以盼的并发编程成为 C++ 语言的一部分。在 C++11 之前,开发者需要依赖于操作系统提供的 API 或第三方库来实现多线程。C++11 通过在标准库中添加了多线程支持,简化了多线程程序的编写,并提高了代码的可移植性和开发效率。后续我会通过几篇文章介绍多线程支持的一些细节,当然也不是完全描述,毕竟要覆盖多线程的各个方面,足够写一本书了。

2024-04-16 09:00:00 393

原创 C++11 新特性:新增算法

这些新增的算法增强了 C++ 的标准库,为开发者提供了更多的工具来编写高效和简洁的代码。通过利用这些算法,可以减少手写的代码量,同时也可以保证代码的性能和可读性。

2024-04-15 09:00:00 577

原创 C++11 新特性:正则表达式

C++11 引入的正则表达式库为 C++ 程序员提供了一个强大且灵活的工具,用于执行复杂的文本处理任务。利用这些特性,开发者可以高效地处理和分析文本数据,解决了 C++ 处理文本的部分痛点。

2024-04-14 00:09:56 1239

原创 C++11 新特性:更强大的随机数功能

C++11 中引入的随机数库大大增强了随机数生成的能力和灵活性,解决了 C++11 之前依赖rand()的种种问题。使用 C++11 提供的多种随机数引擎和分布,开发者可以根据具体需要,生成高质量的随机数,满足加密、模拟、游戏开发等多种场景的需求。

2024-04-13 10:00:00 319

原创 C++11 新特性:std::unordered_set 无序集合

std::unordered_set 是 C++11 中引入的基于哈希表的集合容器,它支持快速的元素查找、插入和删除操作。理解的内部实现可以帮助开发者更有效地使用它,特别是在需要高效管理一组唯一元素的场景下。

2024-04-12 09:00:00 845

原创 C++11 新特性:tuple 元组

std::tuple是 C++11 中引入的一种非常有用的类型,它通过组合多个可能不同类型的值为一个单一对象,为 C++ 编程提供了极大的灵活性和方便性。std::tuple的内部实现复杂,但它提供了简单的接口用于创建、访问和操作多个数据,从而使得处理多返回值、参数传递和数据组织等编程任务变得简单和直观。随着结构化绑定的引入(C++17),操作元组变得更加易于管理和阅读。

2024-04-12 01:50:31 1482

原创 C++11 新特性:std::unordered_map 无序映射

std::unordered_map 是 C++11 中引入的一个非常有用的容器,特别是在需要快速查找、插入和删除键值对的场景下。它通过提供平均常数时间复杂度的操作,帮助开发者编写更高效的代码。不过,使用时需要注意,由于其基于哈希表实现,元素的存储顺序是不确定的。

2024-04-11 09:00:00 1818

原创 C++11 新特性:std::forward_list 前向列表

std::forward_list 是 C++11 中引入的一个高效的单向链表容器,它提供了灵活的元素管理方法,适用于需要频繁进行插入和删除操作的场景。由于其内部实现只维护单向链接,在空间使用上比std::list更加高效。通过合理利用提供的方法,可以在保证性能的同时,编写出清晰、简洁的代码。

2024-04-10 09:00:00 330

原创 C++11 新特性:std::array

std::array是 C++11 中引入的容器类型,它封装了固定大小的数组,提供了类似于 STL 容器的接口,同时保持了 C 风格数组的性能特性。与普通数组相比,std::array更安全、更易于使用,并且支持迭代器。

2024-04-09 22:49:32 330

原创 C++11 新特性:STL 新增数据结构

C++11 通过引入这些新的数据结构,不仅增强了 C++ 的标准库,还提高了C++编程的便利性和效率。这些数据结构各有特点,适用于不同的场景,如std::array提供了比原始数组更安全的固定大小数组,提供了更高效的单向链表实现,和提供了基于哈希表的集合和映射,std::tuple则为多种类型的值提供了便捷的封装。通过合理利用这些数据结构,可以使 C++ 程序更加灵活。

2024-04-08 11:26:40 289

原创 C++ 11 新特性:内存对齐 alignof 和 alignas

C++11 中的内存对齐特性提供了直接控制数据对齐的能力,这对于优化程序性能、减少 CPU 访问内存的开销非常重要。通过合理使用alignof和alignas,开发者可以在需要时显著提升数据访问速度,尤其是在性能敏感的应用程序中。当然,也要注意合理选择对齐大小,避免不必要的内存浪费。

2024-04-07 16:17:28 1093

原创 C++11 新特性:long long 超长整数类型

long long是 C++11 中引入的整数类型,它们至少提供 64位 的整数存储能力,极大地扩展了 C++ 程序可以处理的整数范围。这使得 C++ 程序能够更容易地处理大整数,同时保持良好的跨平台兼容性。

2024-04-06 16:32:55 1908

原创 C++11:explicit 关键字

在 C++ 中,explicit关键字用于防止类的构造函数或转换运算符进行隐式类型转换。默认情况下,如果一个构造函数只需要一个参数,或者一个转换运算符只转换为一个特定类型,编译器会自动使用它们进行隐式转换。虽然这可以使代码更加简洁,但有时也会导致意料之外的行为,尤其是在类型转换不明显或不期望发生时。通过在构造函数或转换运算符前添加explicit关键字,可以要求编译器只在显式转换时使用这些函数,从而增加代码的清晰度和安全性。

2024-04-04 11:20:03 265

原创 C++11 新特性:非受限联合体

C++11 中引入的非受限联合体,极大地增强了联合体的功能和灵活性,允许在联合体中使用具有复杂行为的类类型。这样联合体不仅仅可以用于传统的用途(如类型节省和类型重解释),还可以用于更复杂的场景,如状态管理和变体类型的实现。

2024-03-25 13:12:26 469

原创 C++11 新特性:enum class 关键字

enum class为 C++ 枚举类型提供了更强的作用域控制和类型安全性,是现代 C++ 编程中推荐使用的枚举定义方式。通过使用enum class,可以避免命名冲突,提高代码的可读性和安全性,同时也使得枚举类型的使用更加灵活和强大。

2024-03-24 13:23:02 686

1000个软件中经典图标-16*16PNG文件

1000个软件中经典图标-是单个的16*16PNG文件,需要的下。

2011-04-26

VC6.0为对话框添加菜单

在VC中为对话框添加菜单,初学者可以看看,高手不用浪费时间了,很简单的东西,记下来放到这里做笔记。 一个Word文档,本来想贴在空间里,结果图片不能直接复制,不想再挨个截图,放在这里。

2010-02-23

Info-zip源代码

Info-zip源代码,zip格式的压缩与解压缩源代码

2007-06-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除