首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#std

技巧 | C++中实现类似instanceof的方法

OpenCV学堂

C++有多态与继承,但是很多人开始学习C++,有时候会面临一个常见问题,就是如何向下转型,特别是不知道具体类型的时候,这个时候就希望C++ 可以向Java或者P...

8110

浅析委托构造与继承构造

程序员的园

在现代C++编程中,构造函数扮演着初始化对象状态的重要角色。随着语言的发展,C++11引入了两个强大的构造机制——委托构造(Delegating Constru...

5810

[现代C++]读写文件

程序员的园

fstream可以用来读写文件,其实自C++98以来fstream已在标准库中,只是C++11及以后扩展了其功能,改善了文件处理方式。<fstream>C++的...

6710

[现代C++]文件系统操作

程序员的园

C++17引入了std::filesystem,使得文件系统操作变得前所未有的便捷和高效。std::filesystem为我们提供了一套类型安全、异常友好的接口...

7810

apply,解决元组传参的利器

程序员的园

在C++中,当需要将一个元组的所有元素作为函数的实参时,可以使用可变参数模板和递归来实现一个解包函数。但是这不仅增加了代码的复杂度,也增加了编译时间。基于此,C...

6010

std::any 解决类型不确定性的利器

程序员的园

std::any<T>是一个类模板,用于存储任意可拷贝构造的单个的对象。如基本类型、自定义类型(可拷贝)、甚至是函数对象等。std::any也存在含值和不含值两...

4910

std::optional:解决值存在性问题的利器

程序员的园

查找std::vector内的首个偶数,如果存在则返回该偶数;可是如果std::vecotr内不存在偶数时,该如何?通常是找一些魔幻值/错误码作为返回值,如-1...

6010

获取函数执行结果的n种方式

程序员的园

C++编程中,函数作为封装了一系列操作或计算过程的独立代码块,用于执行相应的功能。可能是操作文件IO、socket等资源,亦或者是修改某个成员变量,亦或者是单纯...

6610

浅析CTAD

程序员的园

在上面的示例中,我们使用CTAD分别实例化了std::vector、std::array、std::pair和std::tuple,并输出了它们的内容。

6310

std::span查看连续内存

程序员的园

为尽可能多的展示std::span的使用示例,本文用span分别查看传统数组、malloc分配的连续内存、std::vector,并验证std::span不可用...

6210

浅析C++中的RTTI:运行时类型识别

程序员的园

typeid 操作符用于获取一个对象/类型的类型信息。它返回一个 std::type_info 类型的对象,该对象包含有关表达式的类型信息。其中可读性强的是na...

8410

std::variant和policy-based design的化学反应

程序员的园

std::variant在之前的文章中讲过,简单叙述如下,如需详细了解,可翻看前文。std::variant是类型安全的多形态容器,存储预定义类型中的一个,结合...

5910

类型安全的瑞士军刀——std::variant

程序员的园

std::visit函数为了更加安全地处理std::variant中的值,它接受一个可调用体(callable,函数对象/lambda表达式/std::func...

5510

我天,map竟成性能瓶颈了

程序员的园

今天研读map的源码时,发现之前的代码在使用map时出现了性能问题,源码简化如下,

7910

C++20 格式化字符串

程序员的园

在 C++20 中引入的 std::format 是一个强大的工具,用于格式化字符串。它提供了一种简洁、类型安全且灵活的方式来构建格式化字符串,同时避免了传统的...

7810

std::thread崩溃的解法在这篇文章里了

程序员的园

2. 关注其成员变量_Impl为std::thread类型,即std::jthread确系采用RAII思想,在构造函数内构造std::thread,但是在其析构...

9210

C++线程池看这篇就够了,支持不同优先级,支持带返回值

程序员的园

随着多核处理器的普及,并发编程在提高应用程序性能方面变得越来越重要。C++标准库提供了多线程支持,但直接使用std::thread进行大规模并发编程无疑...

8110

我天,vector竟然成了性能瓶颈

程序员的园

理论知识如下:std::vector涉及到内存动态分配,凡是涉及到向std::vector中添加元素或修改std::vector大小时,只要现有的capacit...

4710

Linux的线程

ahao

在计算机科学和软件工程中,多线程编程是一项关键技能,尤其在当今多核处理器和高并发应用程序的背景下显得尤为重要。本文将全面探讨Linux环境下的线程编程,涵盖基本...

13610

Linux高级IO流详解

ahao

在Linux中,文件描述符(File Descriptor, FD)是进行IO操作的核心。每个打开的文件都会被分配一个文件描述符。常见的文件描述符包括标准输入(...

9310
领券