C++标准库
文章平均质量分 80
计算机基本使用
瞻邈
老菜鸟一个。
展开
-
std::filesystem使用笔记
C++17引入了filesystem标准库,该库提供了一组类和函数,用于处理文件系统中的文件和目录。使用库,可以方便地执行文件和目录的各种操作,如创建、复制、移动、删除文件或目录,遍历目录,获取文件属性等。原创 2024-05-01 00:53:50 · 1319 阅读 · 0 评论 -
std::transform使用
std::transform在指定的范围内应用于给定的操作,并将结果存储在指定的另一个范围内。以下是std::transform的两个声明,一个是对应于一元操作,一个是对应于二元操作template <class InputIterator, class OutputIterator, class UnaryOperation> OutputIterator transform (InputIterator first1, InputIterator last1,原创 2022-02-03 16:08:46 · 10092 阅读 · 0 评论 -
std::tuple类型
std::tuple是类似std::pair的模板。每个pair的成员类型都不相同,但每个pair都恰好有两个成员。不同std::tuple类型的成员类型也不相同,但一个std::tuple可以有任意数量的成员。每个确定的std::tuple类型的成员数目是固定的,但一个std::tuple类型的成员数目可以与另一个std::tuple类型不同。原创 2021-02-16 23:50:02 · 1453 阅读 · 0 评论 -
C++标准库math
本文中,我们将深入探讨C++标准库中的math模块,带您领略其强大的数学函数和工具。math库提供了丰富的数学函数,涵盖了从基本算术运算到复杂数学运算的各个方面,使得开发者能够在C++程序中轻松实现各种数学计算。我们将详细介绍math库中的常用函数,如三角函数、指数函数、对数函数等,并解释其使用方法和注意事项。此外,我们还将分享一些使用math库进行实际编程的示例,帮助您更好地理解和应用这些函数。通过本文的学习,您将能够充分利用C++标准库math模块,提升程序的数学计算能力和效率。原创 2020-11-23 10:59:55 · 1846 阅读 · 0 评论 -
C++智能指针
在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配一块空间并返回一个指向该对象的指针,delete:指向一个动态独享的指针,销毁对象,并释放与之关联的内存。动态内存管理经常会出现两种问题:一种是忘记释放内存,会造成内存泄漏;一种是尚有指针引用内存的情况下就释放了它,就会产生引用非法内存的指针。为了更加容易(更加安全)的使用动态内存,引入了智能指针的概念。智能指针的行为类似常规指针,重要的区别是它负责自动释放所指向的对象。智能指针的头文件是智能指针包括。原创 2021-02-17 17:58:10 · 489 阅读 · 1 评论 -
C++迭代器
list 容器在进行插入(insert())、接合(splice())等操作时,都不会造成原有的 list 迭代器失效,甚至进行删除操作,而只有指向被删除元素的迭代器失效,其他迭代器不受任何影响。参考文献http://c.biancheng.net/view/6922.html...原创 2021-08-19 12:23:45 · 2118 阅读 · 0 评论 -
std::bind介绍
bind是这样一种机制,它可以预先把指定可调用实体的某些参数绑定到已有的变量,产生一个新的可调用实体,这种机制在回调函数的使用过程中也颇为有用。C++98中,有两个函数bind1st和bind2nd,它们分别可以用来绑定functor的第一个和第二个参数,它们都是只可以绑定一个参数。各种限制,使得bind1st和bind2nd的可用性大大降低。原创 2021-01-13 21:09:48 · 1340 阅读 · 1 评论 -
std::function简介
是一个函数对象的包装器,所存储的可调用对象被称为目标的std::function。如果一个std::function实例不包含目标,则将其称为空。调用空的std::function对象会导致抛出异常std::bad_function_call。std::function满足CopyConstructible和CopyAssignable的要求。当对象没有初始化任何实际的可调用元素,调用对象将抛出异常。原创 2021-01-13 20:53:53 · 1760 阅读 · 0 评论 -
C++流(stream)使用方法
在C++中,流(stream)是一种强大的数据处理机制,它允许程序员以统一、高效的方式处理数据的输入和输出。本文将深入探讨C++中stream的使用方法,包括标准输入输出流、文件流、字符串流以及自定义流等。我们将详细解释每种流的特性和应用场景,并通过丰富的代码示例展示如何在实际编程中运用它们。此外,本文还将探讨stream在数据格式化、错误处理以及多线程环境下的使用技巧。通过学习本文,读者将能够更深入地理解C++中stream的工作原理,并灵活运用它们来提高程序的效率和可读性。原创 2019-06-26 09:32:50 · 2956 阅读 · 1 评论 -
C++条件变量使用详解
在C++11中,我们可以使用条件变量(condition_variable)实现多个线程间的同步操作;当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线程才会被唤醒。原创 2021-01-13 20:35:17 · 19914 阅读 · 5 评论 -
C++数值极限numeric_limits
一般来说,数值类型的极值是一个与平台相关的特性。C++标准程序库通过template numeric_limits提供这些极值,取代传统C语言所采用的预处理常数。你仍然可以使用后者,其中整数常数定义于和,浮点常数定义于和,新的极值概念有两个优点,一是提供了更好的类型安全性,二是程序员可借此写出一些template以核定这些极值。3. 示例输出参考文献http://www.cplusplus.com/refere原创 2021-07-19 19:37:21 · 2485 阅读 · 0 评论 -
C++原子操作
1. 简介原子类型对象的主要特点就是从不同线程访问不会导致数据竞争(data race)。因此从不同线程访问某个原子对象是良性 (well-defined) 行为,而通常对于非原子类型而言,并发访问某个对象(如果不做任何同步操作)会导致未定义 (undifined) 行为发生。从功能上看,简单地说,原子数据类型不会发生数据竞争,能直接用在多线程中而不必我们用户对其进行添加互斥资源锁的类型。从实现上,大家可以理解为这些原子类型内部自己加了锁。2. 使用std::atomic 是模板类,一个模板原创 2021-09-02 13:16:14 · 2641 阅读 · 1 评论