当前位置: 首页 > news >正文

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::pairstd::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标准库是一个强大的工具集&#xff0c;它包含了一组丰富的类和函数&#xff0c;可以帮助开发者进行各种操作&#xff0c;如输入输出、字符串操作、数据结构管理、算法实现等。以下是一些常用的C标准库及其使用方法。 1. 输入输出库 <iostream> 用于标准输入输…...

近期计算机领域的热点技术

随着科技的飞速发展&#xff0c;计算机领域的新技术、新趋势层出不穷。本文将探讨近期计算机领域的几个热点技术趋势&#xff0c;并对它们进行简要的分析和展望。 一、人工智能与机器学习 人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;是近年来计算…...

HarmonyOS Next 系列之可移动悬浮按钮实现(六)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…...

如何获得更高质量的回答-chatgpt

在与技术助手如ChatGPT进行交互时&#xff0c;提问的方式直接影响到你获得的答案质量。以下是几个关键的提问技巧&#xff0c;可以帮助你在与ChatGPT的互动中获得更有效的回答&#xff1a; 1. 清晰明了的问题 技巧&#xff1a;确保问题清晰明了&#xff0c;避免含糊不清或模糊的…...

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的消息队列集成 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 消息队列在现代分布式系统中扮演着至关重要的角色&#xff0c;…...

深度学习 - Transformer 组成详解

整体结构 1. 嵌入层&#xff08;Embedding Layer&#xff09; 生活中的例子&#xff1a;字典查找 想象你在读一本书&#xff0c;你不认识某个单词&#xff0c;于是你查阅字典。字典为每个单词提供了一个解释&#xff0c;帮助你理解这个单词的意思。嵌入层就像这个字典&#xf…...

ONLYOFFICE 8.1编辑器桌面应用程序来袭——在线全面测评

目录 ✈下载✈ &#x1f440;界面&#x1f440; &#x1f44a;功能&#x1f44a; &#x1f9e0;幻灯片版式的重大改进&#x1f9e0; ✂无缝切换文档编辑、审阅和查看模式✂ &#x1f3b5;在演示文稿中播放视频和音频文件&#x1f3b5; &#x1f917;版本 8.1&#xff1a…...

《Windows API每日一练》6.4 程序测试

前面我们讨论了鼠标的一些基础知识&#xff0c;本节我们将通过一些实例来讲解鼠标消息的不同处理方式。 本节必须掌握的知识点&#xff1a; 第36练&#xff1a;鼠标击中测试1 第37练&#xff1a;鼠标击中测试2—增加键盘接口 第38练&#xff1a;鼠标击中测试3—子窗口 第39练&…...

[C#]基于opencvsharp实现15关键点人体姿态估计

数据集 正确选择数据集以对结果产生适当影响也是非常必要的。在此姿势检测中&#xff0c;模型在两个不同的数据集即COCO关键点数据集和MPII人类姿势数据集上进行了预训练。 1. COCO&#xff1a;COCO关键点数据集是一个多人2D姿势估计数据集&#xff0c;其中包含从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&#xff1a; pppd已经断开&#xff0c;或者已经成功建立连接后请求方又中 断了。 01&#xff1a; 发成了一个严重错误&#xff0c;例如系统调用失败或者访问非法内存。 02&#xff1a; 处理给定操作是检测到错误&#xff0c;例如使用两个互斥的操作。 03&#xff1a;…...

XML 技术

XML 技术 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它由万维网联盟(W3C)开发,并在1998年成为正式标准。XML的设计目标是既易于人类阅读,也易于机器解析。它是一种自描述的语言,允许用户定义自己的标签和文档结构。XML被广泛应用于各种领域,包括网络服…...

基于RabbitMQ的异步消息传递:发送与消费

引言 RabbitMQ是一个流行的开源消息代理&#xff0c;用于在分布式系统中实现异步消息传递。它基于Erlang语言编写&#xff0c;具有高可用性和可伸缩性。在本文中&#xff0c;我们将探讨如何在Python中使用RabbitMQ进行消息发送和消费。 安装RabbitMQ 在 Ubuntu 上安装 Rabbi…...

Golang | Leetcode Golang题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; func rangeBitwiseAnd(m int, n int) int {for m < n {n & (n - 1)}return n }...

竞争性谈判中,主要谈判什么内容?(电子化招采系统)

问&#xff1a;竞争性谈判中&#xff0c;主要谈判什么内容&#xff1f; 答&#xff1a;竞争性谈判是指采购人或代理机构通过与多家供应商&#xff08;不少于3家&#xff09;进行谈判&#xff0c;最后从中确定中标供应商的一种采购方式。在谈判的过程中&#xff0c;谈判的主要内…...

youlai-boot项目的学习(4) 前后端本地部署

环境 1、macOS, brew, IntelliJ IDEA, WebStrom 2、后端&#xff1a;https://gitee.com/youlaiorg/youlai-boot.git , master, 9a753a2e94985ed4cbbf214156ca035082e02723 3、前端&#xff1a;https://gitee.com/youlaiorg/vue3-element-admin.git, master, 66b913ef01dc880ad…...

Redis 5 种基础数据结构?

Redis 5 种基本数据结构(String、List、Hash、Set、Sorted Set)在面试中经常会被问到&#xff0c;这篇文章我们一起来回顾温习一下。 还有几种比较特殊的数据结构(HyperLogLogs、Bitmap 、Geospatial、Stream)也非常重要&#xff0c;我们后面下次再聊&#xff01; 下面是正文。…...

搜维尔科技:SenseGlove Nova2国内首款支持手掌心力回馈手套开售

《SenseGlove Nova 2》现正全球发行中! 搜维尔科技独家代理最新上市的 SenseGlove Nova 2 是世上首款&#xff0c;也是目前市面上唯一一款提供手掌力回馈的无缐VR力回馈手套&#xff0c;它结合了三种最先进的反馈技术&#xff0c;包括主动反馈、强力反馈及震动反馈&#xff0c…...

Java中的函数式编程入门

Java中的函数式编程入门 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我来为大家介绍一下Java中的函数式编程。随着Java 8的发布&#xff0c;函数式编程成…...

Nornir网络自动化监控插件:集成Sentry实现异常告警与上下文追踪

1. 项目概述&#xff1a;一个为Nornir网络自动化框架量身定制的告警与监控插件 如果你和我一样&#xff0c;长期使用Nornir框架来管理成百上千的网络设备&#xff0c;那你一定遇到过这样的场景&#xff1a;一个精心编写的自动化任务在测试环境跑得飞快&#xff0c;一旦放到生产…...

在vscode中快速配置taotoken的claude code插件实现稳定编程助手

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在VSCode中快速配置Taotoken的Claude Code插件实现稳定编程助手 对于使用VSCode的开发者而言&#xff0c;Claude Code插件是一个强…...

软件测试从业者理财指南:别让辛苦钱在通胀中缩水

你的“缺陷”不止在代码里作为软件测试工程师&#xff0c;你每天都在和缺陷打交道——功能缺陷、性能缺陷、安全缺陷。你擅长用边界值分析挖出隐藏的bug&#xff0c;用等价类划分提升用例效率&#xff0c;用自动化脚本把重复劳动压缩到极致。但当你关掉Jira&#xff0c;看着工资…...

AWorksLP嵌入式平台FatFs文件系统与SD卡驱动移植实战指南

1. 项目概述&#xff1a;为什么要在AWorksLP上折腾FatFs和SD卡&#xff1f;在嵌入式开发里&#xff0c;存储扩展是个绕不开的话题。尤其是当你手头的MCU片上Flash只有几百KB&#xff0c;却要存点日志、配置文件&#xff0c;甚至是一些小体积的音频、图片资源时&#xff0c;外挂…...

Unity3D项目跨平台部署实战:从Windows到Linux的完整流程与避坑指南

1. 环境准备&#xff1a;搭建跨平台开发基础 跨平台部署的第一步是确保开发环境配置正确。很多开发者容易忽略这一步&#xff0c;结果在后续流程中遇到各种奇怪的问题。我在实际项目中遇到过多次因为环境不匹配导致的编译失败&#xff0c;所以特别强调环境准备的重要性。 首先需…...

Claude API预算与性能优化实战:四层策略降本增效

1. 项目概述&#xff1a;一个为Claude设计的预算与性能优化技能 最近在折腾Claude API的时候&#xff0c;发现了一个挺有意思的开源项目&#xff0c;叫 budget_and_performance_optimization_claude_skill 。简单来说&#xff0c;这是一个专门为Claude&#xff08;特别是Clau…...

单调栈:高效解决边界查找问题

一、上期回顾 学完并查集 DSU&#xff1a;初始化、查找、合并、路径压缩&#xff0c;连通块、集合合并类题目直接秒杀。今天攻坚单调栈&#xff0c;属于刷题必备、面试常问的线性时间算法。二、单调栈核心概念1. 什么是单调栈栈内元素保持严格递增 / 严格递减&#xff0c;始终维…...

如何通过LizzieYzy围棋AI分析工具在30天内实现棋力突破:从入门到实战的完整指南

如何通过LizzieYzy围棋AI分析工具在30天内实现棋力突破&#xff1a;从入门到实战的完整指南 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 在围棋AI技术飞速发展的今天&#xff0c;LizzieYzy作为一…...

长期使用Taotoken聚合API对项目开发效率的实际影响

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken聚合API对项目开发效率的实际影响 在为期数月的项目开发周期中&#xff0c;我们团队将Taotoken作为所有大模型调用…...

用STM32F103的USART1和PC串口助手玩“聊天室”:一个完整的数据收发项目实战

STM32F103串口聊天室&#xff1a;从零构建双向交互式终端 项目背景与核心价值 在嵌入式开发领域&#xff0c;串口通信如同"Hello World"般基础却又至关重要。传统教学往往止步于数据收发演示&#xff0c;而本项目将打破常规——用STM32F103的USART1构建一个具有完整交…...