刷题用到的非常有用的函数c++(持续更新)

阅读导航
- 字符串处理类
- 一、stoi()(将字符串转换为整数类型)
- 二、to_string()(将整数类型转换为字符串类型)
- 三、stringstream函数(将一个字符串按照指定的分隔符进行分词)
字符串处理类
一、stoi()(将字符串转换为整数类型)
在C++中,可以使用 std::stoi() 函数将字符串转换为整数类型。
示例代码如下:
#include <iostream>
#include <string>int main() {std::string str = "12345";int num = std::stoi(str);std::cout << "The converted integer is: " << num << std::endl;return 0;
}
输出结果为:
The converted integer is: 12345
std::stoi() 函数接受一个字符串作为参数,并尝试将其转换为整数类型。如果转换成功,则返回转换后的整数值;如果无法进行有效的转换,将抛出 std::invalid_argument 或 std::out_of_range 异常。
需要注意的是,如果字符串中包含除数字以外的字符,或者超出了整数类型的取值范围,那么转换将失败。在使用 std::stoi() 函数时,要确保输入的字符串符合期望的格式和范围,或者进行适当的异常处理。
二、to_string()(将整数类型转换为字符串类型)
在C++中,可以使用 std::to_string() 函数将整数类型转换为字符串类型。
示例代码如下:
#include <iostream>
#include <string>int main() {int num = 12345;std::string str = std::to_string(num);std::cout << "The converted string is: " << str << std::endl;return 0;
}
输出结果为:
The converted string is: 12345
std::to_string() 函数接受一个整数作为参数,并返回对应的字符串表示。它将整数转换为相应的十进制字符串。
需要注意的是,转换后的字符串对象是一个新的副本,原始的整数值并不受影响。
另外,如果需要将其他类型的值转换为字符串,也可以借助字符串流(std::stringstream)和输出流操作符来实现。例如:
#include <iostream>
#include <string>
#include <sstream>int main() {int num = 12345;std::stringstream ss;ss << num;std::string str = ss.str();std::cout << "The converted string is: " << str << std::endl;return 0;
}
这种方法可用于将各种类型(如浮点数、布尔值等)转换为字符串。
三、stringstream函数(将一个字符串按照指定的分隔符进行分词)
stringstream 是 C++ 标准库中的一个类,它可以将字符串转换为流,从而可以方便地对字符串进行输入输出操作,如分词、格式化等。
通过 stringstream,我们可以将一个字符串按照指定的分隔符进行分词。具体使用方法如下:
-
首先需要包含头文件 :
#include <sstream> -
然后创建一个 stringstream 对象,并将需要分词的字符串传入该对象的构造函数:
std::stringstream ss("this is a string"); -
使用 while 循环和 >> 运算符,从 stringstream 中逐个读取分词:
std::string word; while (ss >> word) {// 处理分词 }在此代码片段中,每次循环会从 stringstream 中读取一个单词(以空格为分隔符),并将其存储在变量 word 中。
可以将 >> 运算符看作是一个提取器,它会从 stringstream 中读取下一个可用的值,并将其存储到变量中。当所有的值都被读取完毕时,>> 运算符会返回 false,此时循环会退出。
可以使用 getline() 函数来按照指定的分隔符读取一整行数据,例如:
std::string line; getline(ss, line, ','); // 以逗号为分隔符读取一整行数据
如果你需要对字符串进行分词、格式化等操作,stringstream 可以是一个很好的工具。
力扣题目:2512. 奖励最顶尖的 K 名学生
解题代码:
class Solution {
public:vector<int> topStudents(vector<string>& positive_feedback, vector<string>& negative_feedback, vector<string>& report, vector<int>& student_id, int k) {map<std::string, int> words;for (const auto& word : positive_feedback) {words[word] = 3;}for (const auto& word : negative_feedback) {words[word] = -1;}vector<vector<int>> A;for (int i = 0; i < report.size(); i++) {stringstream ss;string w;int score = 0;ss << report[i];while (ss >> w) {if (words.count(w)) {score += words[w];}}A.push_back({-score, student_id[i]});}sort(A.begin(), A.end());vector<int> top_k;for (int i = 0; i < k; i++) {top_k.push_back(A[i][1]);}return top_k;}
};
相关文章:
刷题用到的非常有用的函数c++(持续更新)
阅读导航 字符串处理类一、stoi()(将字符串转换为整数类型)二、to_string()(将整数类型转换为字符串类型)三、stringstream函数(将一个字符串按照指定的分隔符进行分词) 字符串处理类 一、stoi()ÿ…...
黑客技术(网络安全)——自学思路
如果你想自学网络安全,首先你必须了解什么是网络安全!,什么是黑客!! 1.无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透2.也有 Web 防…...
lNmp安装:
一、LNMP LNMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件, 能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词,具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务器、 PHP(或…...
Fisher辨别分析
问题要求 在UCI数据集上的Iris和Sonar数据上验证算法的有效性。训练和测试样本有三种方式(三选一)进行划分: (一) 将数据随机分训练和测试,多次平均求结果 (二)K折交叉验证 &…...
【Zookeeper专题】Zookeeper选举Leader源码解析
目录 前言阅读建议课程内容一、ZK Leader选举流程回顾二、源码流程图三、Leader选举模型图 学习总结 前言 为什么要看源码?说实在博主之前看Spring源码之前没想过这个问题。因为我在看之前就曾听闻大佬们说过【JavaCoder三板斧:Java,Mysql&a…...
机器学习之自训练协同训练
前言 监督学习往往需要大量的标注数据, 而标注数据的成本比较高 . 因此 , 利用大量的无标注数据来提高监督学习的效果有着十分重要的意义. 这种利用少量标注数据和大量无标注数据进行学习的方式称为 半监督学习 ( Semi…...
ubuntu 通过apt-get快速安装 docker
在使用 apt-get 安装 Docker 之前,你需要确保你的系统已经准备好并且已经更新了软件包列表。以下是在 Ubuntu 系统上使用 apt-get 安装 Docker 的步骤: 更新软件包列表: sudo apt-get update 安装依赖软件包,以确保可以通过 HTTPS 使用存储库: sudo apt-get install apt-t…...
C++医院影像科PACS源码:三维重建、检查预约、胶片打印、图像处理、测量分析等
PACS连接DICOM接口的医疗器械(如CT、MRI、CR、DR、DSA、各种窥镜成像系统设备等),实现图像无损传输,实现DICOM胶片打印机回传打印功能,支持各种图像处理,可以进行窗技术调节,与登记台管理系统共…...
企业聊天应用程序使用 Kubernetes
1. 客户端-服务器工作流程 客户端:在我们的架构中,客户端可以分为三种类型:iOS 和 Android 移动应用程序以及 Web 聊天。移动应用程序首先通过 API 网关服务与服务器进行通信,其中客户端会生成一个访问令牌,该令牌将授…...
记录用命令行将项目打包成war包
记录用命令行将项目打包成war包 找到项目的pom.xml 在当前路径下进入cmd 输入命令 mvn clean package 发现报错了 Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project MMS: Error assembling WAR: webxml attribute is req…...
Linux基础知识笔记
Linux基础知识笔记 介绍/dev/null作用2>&1作用 介绍 记录linux基础知识,持续更新中… /dev/null作用 /dev/null 是一个特殊的设备文件,可以将数据重定向到这个文件中,从而实现将输出或错误信息丢弃的效果。在 Linux 系统中…...
Laya3.0 入门教程
点击play箭头 点击右边的开发者工具 就会弹出 chrome的调试窗口 然后定位到你自己的ts文件 直接在ts里断点即可 不需要js文件 如何自动生成代码? 比如你打开一个新项目 里面显示的是当前场景 只需要点击 UI运行时 右边的框就可以了 他会自动弹窗提示你 创建一个文…...
3D全景虚拟样板间展销系统扩展用户市场范围
VR样板间,能够真实还原现场,定制需要的场景。让一切比真实更真实。用户可以720度看房,自由行走在空间里,直观感受各空间的大小,看到自己家中的“未来样子”,同时通过操控手柄,控制整个智能家居系…...
如何编写lua扩展库
很多人都听过lua,也见过lua脚本,但可能不理解为什么lua脚本里面会有这么多没见过的函数, 而且这些函数功能是如此强大,能上天入地,无所不能 其实这些函数并不是lua自带的,都是由程序作者造出来的隐藏在了他们的主程序里 一般运行lua脚本,我们会使用自带的解释器,当你拿到一份…...
Java List 中存不同的数据类型
在最近的实践中,有人突然问了一个问题: 在 Java 的 List 中可以存不同的数据类型吗? 这个问题突然给问到了,我们都知道 Java 中的 List 中存的是对象,通常我们定义都会这样的定义: List<String> t…...
pyqt5:openpyxl 读取 Excel文件,显示在 QTableWidget 中
pip install openpyxl openpyxl-3.1.2-py2.py3-none-any.whl (249 kB) et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB) 摘要:A Python library to read/write Excel 2010 xlsx/xlsm files pip install pyqt5; pip install pyqt5-tools; 编写 openpyxl_pyqt5.py 如…...
在RabbitMQ中使用新的MQTT 5.0功能
MQTT是物联网(IoT)的标准协议,是轻量级的,协议头很小,可以节省网络带宽。MQTT也很有效,与其他消息传递协议相比,客户端通过更短的握手进行连接和身份验证。 以下是本文介绍的MQTT 5.0功能列表&…...
flinkcdc 体验
0 flink版本 踩雷 java代码操作 flink Table/SQL API 和 DataStream API 编写程序后,打成jar包丢到flink集群运行,报错首选需要考虑flink集群版本和 jar包中maven依赖的版本是否一致。 目前网上flink、flinkcdc相关博文绝大部分是基于flink1.13、1.14编…...
Kafka知识补充
如何避免 Rebalance 最简单粗暴的就是 : 减少组成员数量发生变化 每个 Consumer 实例都会定期地向 Coordinator 发送心跳请求,表明它还存活着。如果某个 Consumer 实例不能及时地发送这些心跳请求,Coordinator 就会认为该 Consumer 已经“死…...
【MAC】升级 Mac os 后报错
背景 17 年买的 mac,发现很多软件都无法安装,于是升级 mac os 到 10.13,从官网下载 10.13 版本,之后升级,升级还算顺利。但使用 git 的时候发现出现问题了。 问题 使用 git 出现如下错误 xcrun: error: invalid ac…...
郭锐入局智界,再造一个“荣耀”?
出品 | 何玺排版 | 叶媛4月2日,智界汽车官宣,郭锐出任董事长兼首席执行官,全面负责公司经营管理工作,即日起生效。消息一出,行业侧目。让人们侧目的,不是智界任命高管的消息,而是郭锐这个名字。…...
个人情况随笔
自我介绍技术世界的探索者,一名对代码充满热情的初学者。虽然起步较晚,但始终相信编程是解决问题的艺术,而不仅仅是敲键盘。过往的经历或许与技术无关,但逻辑分析、团队协作和持续学习的能力,是无论哪个领域都通用的财…...
vLLM-v0.11.0保姆级教程:零基础3分钟部署,让大模型推理速度提升5-10倍
vLLM-v0.11.0保姆级教程:零基础3分钟部署,让大模型推理速度提升5-10倍 1. 为什么选择vLLM-v0.11.0? 1.1 大模型推理的痛点 在传统的大语言模型推理过程中,我们常常面临以下挑战: 显存利用率低:KV Cache…...
VS2019项目重构实战:从命名空间到解决方案的全面重命名指南
1. 为什么需要全面重命名项目? 接手他人项目或者复用旧项目框架时,第一件事就是要给项目"改头换面"。这就像买二手房后的装修,不改名字总觉得住着别人的房子。我在团队协作中经常遇到这种情况:某个老项目要适配新业务&a…...
13、探索transforms.RandomRotation()在图像增强中的灵活应用
1. 理解transforms.RandomRotation()的核心功能 当你第一次接触图像数据增强时,可能会被各种变换函数搞得晕头转向。今天我们就来深入聊聊transforms.RandomRotation()这个在PyTorch中非常实用的图像旋转工具。简单来说,它能帮你把图片随机旋转一定角度&…...
CSDN程序员副业图谱技术文章推荐
CSDN程序员副业图谱技术文章推荐CSDN作为国内知名的技术社区,收录了大量关于程序员副业和技术图谱的文章。以下是一些相关的高质量中文文献和技术资源:程序员副业方向《程序员如何开启副业:技术变现的多种途径》《技术副业实战:从…...
ai一键生成node.js环境配置教程,快马平台助你跳过繁琐安装步骤
最近在学习Node.js开发时,发现环境配置这个入门步骤对新手来说确实有点麻烦。不同操作系统下的安装方式差异大,版本选择也让人纠结。好在发现了InsCode(快马)平台的AI辅助开发功能,可以自动生成完整的配置教程,分享下我的使用体验…...
隔离放大器:信号传输的精准隔离与保真核心
信号精准传输与安全隔离是电子系统稳定运行的关键,工业监测、医疗设备、电力系统、新能源转换等领域常面临信号微弱、电磁干扰、高低压共存等挑战。隔离放大器凭借高共模抑制比、强绝缘隔离、低噪声放大等核心优势,破解了传统放大器信号失真、安全隐患等…...
线性基——2026杭电春季联赛第三场1005月球异或
前言 本人蒟蒻,如有错误还请指出。 前不久刚学了线性基,结果就用上了。线性基yyds! 没学过线性基的出门左拐 放一个之前写的线性基笔记 原题链接 题目大意 新定义三进制下的异或运算 。 再给你一个长度为 的数组,你可以…...
Xamarin.Macios性能优化终极指南:10个让你的应用运行如飞的技巧
Xamarin.Macios性能优化终极指南:10个让你的应用运行如飞的技巧 【免费下载链接】xamarin-macios .NET for iOS, Mac Catalyst, macOS, and tvOS provide open-source bindings of the Apple SDKs for use with .NET managed languages such as C# 项目地址: http…...
