C++中常用的标志库
标准库
C++标准库是一个强大的工具集,它包含了一组丰富的类和函数,可以帮助开发者进行各种操作,如输入输出、字符串操作、数据结构管理、算法实现等。以下是一些常用的C++标准库及其使用方法。
1. 输入输出库
<iostream>
用于标准输入输出操作。
#include <iostream>int main() {int a;std::cout << "Enter a number: ";std::cin >> a;std::cout << "You entered: " << a << std::endl;return 0;
}
<fstream>
用于文件输入输出操作。
#include <fstream>
#include <iostream>int main() {std::ofstream outFile("example.txt");outFile << "Hello, World!" << std::endl;outFile.close();std::ifstream inFile("example.txt");std::string content;inFile >> content;std::cout << "File content: " << content << std::endl;inFile.close();return 0;
}
2. 容器库
<vector>
动态数组容器
#include <vector>
#include <iostream>int main() {std::vector<int> vec = {1, 2, 3, 4, 5};vec.push_back(6);for (int v : vec) {std::cout << v << " ";}std::cout << std::endl;return 0;
}
<list>
双向链表容器。
#include <list>
#include <iostream>int main() {std::list<int> lst = {1, 2, 3, 4, 5};lst.push_back(6);for (int v : lst) {std::cout << v << " ";}std::cout << std::endl;return 0;
}
<map>
键值对容器。
#include <map>
#include <iostream>int main() {std::map<std::string, int> myMap;myMap["one"] = 1;myMap["two"] = 2;for (const auto& pair : myMap) {std::cout << pair.first << ": " << pair.second << std::endl;}return 0;
}
3. 算法库
<algorithm>
常用算法函数。
#include <algorithm>
#include <vector>
#include <iostream>int main() {std::vector<int> vec = {3, 1, 4, 1, 5, 9};// 排序std::sort(vec.begin(), vec.end());for (int v : vec) {std::cout << v << " ";}std::cout << std::endl;// 查找if (std::binary_search(vec.begin(), vec.end(), 5)) {std::cout << "Found 5" << std::endl;}return 0;
}
4. 字符串库
<string>
字符串操作。
#include <string>
#include <iostream>int main() {std::string str = "Hello";str += ", World!";std::cout << str << std::endl;std::string substr = str.substr(0, 5);std::cout << "Substring: " << substr << std::endl;return 0;
}
5. 数学库
<cmath>
数学函数。
#include <cmath>
#include <iostream>int main() {double x = 3.14;std::cout << "sin(x) = " << sin(x) << std::endl;std::cout << "cos(x) = " << cos(x) << std::endl;std::cout << "sqrt(16) = " << sqrt(16) << std::endl;return 0;
}
6. 时间库
<chrono>
时间处理。
#include <chrono>
#include <iostream>
#include <thread>int main() {auto start = std::chrono::high_resolution_clock::now();std::this_thread::sleep_for(std::chrono::seconds(1));auto end = std::chrono::high_resolution_clock::now();std::chrono::duration<double> duration = end - start;std::cout << "Elapsed time: " << duration.count() << " seconds" << std::endl;return 0;
}
7. 多线程库
<thread>
多线程处理。
#include <thread>
#include <iostream>void threadFunction() {std::cout << "Thread is running" << std::endl;
}int main() {std::thread t(threadFunction);t.join(); // 等待线程完成return 0;
}
8. 智能指针库
<memory>
智能指针管理。
#include <memory>
#include <iostream>int main() {std::unique_ptr<int> ptr = std::make_unique<int>(10);std::cout << "Unique pointer value: " << *ptr << std::endl;std::shared_ptr<int> sharedPtr = std::make_shared<int>(20);std::cout << "Shared pointer value: " << *sharedPtr << std::endl;return 0;
}
9. 其他有用的库
<utility>
包含一些实用工具,如 std::pair
和 std::move
。
#include <utility>
#include <iostream>int main() {std::pair<int, std::string> p(1, "one");std::cout << "Pair: " << p.first << ", " << p.second << std::endl;int x = 10;int y = std::move(x);std::cout << "y: " << y << std::endl;return 0;
}
10、<atomic>
库
<atomic>
库提供了原子操作的类和函数,用于多线程环境下对共享变量进行安全的操作。
#include <atomic>
#include <iostream>
#include <thread>std::atomic<int> counter(0);void increment() {for (int i = 0; i < 10000; ++i) {counter++;}
}int main() {std::thread t1(increment);std::thread t2(increment);t1.join();t2.join();std::cout << "Counter value: " << counter << std::endl;return 0;
}
11、<mutex>
库
<mutex>
库提供了互斥锁和其他同步原语,用于在多线程程序中实现线程安全的访问控制
#include <mutex>
#include <iostream>
#include <thread>std::mutex mtx;void threadFunction() {std::lock_guard<std::mutex> lock(mtx);std::cout << "Thread is running" << std::endl;
}int main() {std::thread t(threadFunction);t.join();return 0;
}
相关文章:
C++中常用的标志库
标准库 C标准库是一个强大的工具集,它包含了一组丰富的类和函数,可以帮助开发者进行各种操作,如输入输出、字符串操作、数据结构管理、算法实现等。以下是一些常用的C标准库及其使用方法。 1. 输入输出库 <iostream> 用于标准输入输…...
近期计算机领域的热点技术
随着科技的飞速发展,计算机领域的新技术、新趋势层出不穷。本文将探讨近期计算机领域的几个热点技术趋势,并对它们进行简要的分析和展望。 一、人工智能与机器学习 人工智能(AI)和机器学习(ML)是近年来计算…...
HarmonyOS Next 系列之可移动悬浮按钮实现(六)
系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现(一) HarmonyOS Next 系列之验证码输入组件实现(二) HarmonyOS Next 系列之底部标签栏TabBar实现(三) HarmonyOS Next 系列之HTTP请求封装和Token…...
如何获得更高质量的回答-chatgpt
在与技术助手如ChatGPT进行交互时,提问的方式直接影响到你获得的答案质量。以下是几个关键的提问技巧,可以帮助你在与ChatGPT的互动中获得更有效的回答: 1. 清晰明了的问题 技巧:确保问题清晰明了,避免含糊不清或模糊的…...
ASP.NET Core 6.0 使用 Log4Net 和 Nlog日志中间件
前言 两年前,浅浅的学过 .NET 6,为啥要记录下来,大概是为了以后搭架子留下引线,还有抛砖引玉。 1. 环境准备 下载 建议使用 Visual Studio 2022 开发版 官网的下载地址:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具借助 Visual Studio 设计,具有自动完成…...
使用Spring Boot实现与ActiveMQ的消息队列集成
使用Spring Boot实现与ActiveMQ的消息队列集成 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 消息队列在现代分布式系统中扮演着至关重要的角色,…...
深度学习 - Transformer 组成详解
整体结构 1. 嵌入层(Embedding Layer) 生活中的例子:字典查找 想象你在读一本书,你不认识某个单词,于是你查阅字典。字典为每个单词提供了一个解释,帮助你理解这个单词的意思。嵌入层就像这个字典…...
ONLYOFFICE 8.1编辑器桌面应用程序来袭——在线全面测评
目录 ✈下载✈ 👀界面👀 👊功能👊 🧠幻灯片版式的重大改进🧠 ✂无缝切换文档编辑、审阅和查看模式✂ 🎵在演示文稿中播放视频和音频文件🎵 🤗版本 8.1:…...
《Windows API每日一练》6.4 程序测试
前面我们讨论了鼠标的一些基础知识,本节我们将通过一些实例来讲解鼠标消息的不同处理方式。 本节必须掌握的知识点: 第36练:鼠标击中测试1 第37练:鼠标击中测试2—增加键盘接口 第38练:鼠标击中测试3—子窗口 第39练&…...
[C#]基于opencvsharp实现15关键点人体姿态估计
数据集 正确选择数据集以对结果产生适当影响也是非常必要的。在此姿势检测中,模型在两个不同的数据集即COCO关键点数据集和MPII人类姿势数据集上进行了预训练。 1. COCO:COCO关键点数据集是一个多人2D姿势估计数据集,其中包含从Flickr收集的…...
lambda-map.merge
map.merge 结论: 1.当前传入的 key ,value biFunction 2.如果之前map不存在则直接put(当前key,当前value) 3.如果之前map已经有了,老value与 当前value 进入function处理后再 put(当前key,处理后的value)...
pppd 返回错误码 含义
错误码 00: pppd已经断开,或者已经成功建立连接后请求方又中 断了。 01: 发成了一个严重错误,例如系统调用失败或者访问非法内存。 02: 处理给定操作是检测到错误,例如使用两个互斥的操作。 03:…...
XML 技术
XML 技术 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它由万维网联盟(W3C)开发,并在1998年成为正式标准。XML的设计目标是既易于人类阅读,也易于机器解析。它是一种自描述的语言,允许用户定义自己的标签和文档结构。XML被广泛应用于各种领域,包括网络服…...
基于RabbitMQ的异步消息传递:发送与消费
引言 RabbitMQ是一个流行的开源消息代理,用于在分布式系统中实现异步消息传递。它基于Erlang语言编写,具有高可用性和可伸缩性。在本文中,我们将探讨如何在Python中使用RabbitMQ进行消息发送和消费。 安装RabbitMQ 在 Ubuntu 上安装 Rabbi…...
Golang | Leetcode Golang题解之第201题数字范围按位与
题目: 题解: func rangeBitwiseAnd(m int, n int) int {for m < n {n & (n - 1)}return n }...
竞争性谈判中,主要谈判什么内容?(电子化招采系统)
问:竞争性谈判中,主要谈判什么内容? 答:竞争性谈判是指采购人或代理机构通过与多家供应商(不少于3家)进行谈判,最后从中确定中标供应商的一种采购方式。在谈判的过程中,谈判的主要内…...
youlai-boot项目的学习(4) 前后端本地部署
环境 1、macOS, brew, IntelliJ IDEA, WebStrom 2、后端:https://gitee.com/youlaiorg/youlai-boot.git , master, 9a753a2e94985ed4cbbf214156ca035082e02723 3、前端:https://gitee.com/youlaiorg/vue3-element-admin.git, master, 66b913ef01dc880ad…...
Redis 5 种基础数据结构?
Redis 5 种基本数据结构(String、List、Hash、Set、Sorted Set)在面试中经常会被问到,这篇文章我们一起来回顾温习一下。 还有几种比较特殊的数据结构(HyperLogLogs、Bitmap 、Geospatial、Stream)也非常重要,我们后面下次再聊! 下面是正文。…...
搜维尔科技:SenseGlove Nova2国内首款支持手掌心力回馈手套开售
《SenseGlove Nova 2》现正全球发行中! 搜维尔科技独家代理最新上市的 SenseGlove Nova 2 是世上首款,也是目前市面上唯一一款提供手掌力回馈的无缐VR力回馈手套,它结合了三种最先进的反馈技术,包括主动反馈、强力反馈及震动反馈,…...
Java中的函数式编程入门
Java中的函数式编程入门 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我来为大家介绍一下Java中的函数式编程。随着Java 8的发布,函数式编程成…...
idea 自动生成序列化数字
目标:当类继承Serializable后自动生成序列化Uid 网上查了很多说勾选class without ‘serialVersionUID’ 但是我勾选没用 最后发现,我勾选的是Serialization issues里面的配置,要勾选的是JVM languages下的 如下图所示,记录一下…...
Java数据结构算法(最长递增序列二分查找)
前言: 最长递增子序列(Longest Increasing Subsequence, LIS)是指在一个给定的序列中,找到一个最长的子序列,使得这个子序列中的元素是单调递增的。子序列不要求在原序列中连续。 实现原理 使用一个 tails 列表,其中…...
编译VTK静态库
编译VTK静态库遇到问题 vtkCommonCore-9.3d.lib(vtkSMPToolsAPI.obj) : error LNK2019: unresolved external symbol "public: bool __cdecl vtk::detail::smp::vtkSMPToolsImpl<1>::IsParallelScope(void)" (?IsParallelScope?$vtkSMPToolsImpl$00smpdetai…...
Python中的@property装饰器:深入理解与应用
Python中的property装饰器:深入理解与应用 在Python中,property装饰器是一个强大的工具,它允许我们将方法作为属性来访问,使得代码更加简洁、清晰,并提供了更好的封装性。本文将深入探讨property装饰器的工作原理、应…...
springCloudalibabaAI孵化(一)
目录 1、what 1、简介 2、核心概念 3、高级特性 Prompt 和 AiResponse 4、功能 2、How 1、前言 2、在项目 pom.xml 中加入 2023.0.1.0 版本 Spring Cloud Alibaba 依赖: 3、在 配置文件中加入以下配置:application.yml 4、编写聊天服务实现类&a…...
【封装】Unity编辑器模式GUID加载资源
介绍 在编辑器模式下通过GUID获取工程目录下的指定资源的接口工具封装 工具原理 借助AssetDatabaseAPI FindAssets : 获取 GUID GUIDToAssetPath : 通过GUID获取路径LoadAssetAtPath<T>: 通过路径加载资源 代码: public static class GetAssetUtil {pub…...
安装 Docker 环境(通过云平台创建一个实例实现)
目录 1. 删除原有 yum 2. 手动配置 yum 源 3. 删除防火墙规则 4. 保存防火墙配置 5. 修改系统内核。打开内核转发功能。 6. 安装 Docker 7. 设置本地镜像仓库 8.重启服务 1. 删除原有 yum rm -rfv /etc/yum.repos.d/* 2. 手动配置 yum 源 使用 centos7-1511.iso 和 Xi…...
MySQL之可扩展性(六)
可扩展性 向外扩展 12.重新均衡分片数据 如有必要,可以通过在分片间移动数据来达到负载均衡。举个例子,许多读者可能听一些大型图片分享网站或流行社区网站的开发者提到过用于分片间移动用户数据的工具。在分片间移动数据的好处很明显。例如ÿ…...
C++ | Leetcode C++题解之第202题快乐数
题目: 题解: class Solution { public:int ProductSum(int n){int sum 0;while(n){int temp n % 10;sum temp*temp;n / 10;}return sum;}bool isHappy(int n) {int slow n,fast n;// 快慢指针,找环的相遇位置do{slow ProductSum(slow)…...
NIST网络安全框架体系应用
NIST网络安全框架体系应用 NIST网络安全框架(NIST Cybersecurity Framework, NIST CSF)由美国国家标准与技术研究院(NIST)发布,是一套广泛应用于各种组织的网络安全管理指南。该框架通过识别、保护、检测、响应和恢复…...
网站虚假备案/网址收录网站
标准容器 C容器分类:顺序容器,有序容器,无序容器。所有的容器都有一个基本的特性:容器保存元素采用的是值语义,也就是说,里面存储的是元素的副本、复件,而不是引用。 从这个基本的特性可以得出…...
游戏网站app/石家庄网站建设方案推广
解决方法如下: 1>、进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。 2>、添加文件的写权限。也就是输入命令"chmod uw /etc/sudoers"。 3>、编辑/etc/sudoers文件…...
网站开发实战项目/学开网店哪个培训机构好正规
概述 Floodlight内部定义报文格式的代码位于net.floodlightcontroller.packet,其中定义的报文类型有ARP,BPDU,BSN,BSNPROBE,DHCP,Ethernet,ICMP,IPv4,LLC,LLDP,TCP,UDP。 其中定义了一个名为IPacket的接口,该接口结构如图: 包…...
wordpress 主题大学/百度怎么投广告
时 间:2015-02-05 08:17:11作 者:摘 要:连接SQL Server 数据库出错的解决方案正 文:经常有人反映说SQL Server 客户端连接不上。现在将这类问题归纳如下:一、SQL Server 实例(服务)未启动打开“SQL Server 配置管理器”(或者“管理工具”中的“服务”)ÿ…...
wordpress 无广告视频插件下载/推广营销是什么
❑ 从 10.7.2 beta 11C6X 开始,启用 iCloud Find My Mac 功能,必须需要 Recovery HD 的存在。由于这个分区比较特殊,常规方法不能够创建它。导致很多同学为此,需要重装 OS X Lion。当然,重装是一个非常常规,…...
怎么做网站优化 s/苏州百度推广公司地址
1.准备工作——安装一些工具包 $ sudo apt-get install ros-melodic-ros-tutorials ros-melodic-geometry-tutorials ros-melodic-rviz ros-melodic-rosbash ros-melodic-rqt-tf-tree2.运行demo roslaunch turtle_tf turtle_tf_demo.launch会跳出一个窗口,一只小乌…...