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

刷题用到的非常有用的函数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_argumentstd::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,我们可以将一个字符串按照指定的分隔符进行分词。具体使用方法如下:

  1. 首先需要包含头文件 :

    #include <sstream>
    
  2. 然后创建一个 stringstream 对象,并将需要分词的字符串传入该对象的构造函数:

    std::stringstream ss("this is a string");
    
  3. 使用 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()&#xff08;将字符串转换为整数类型&#xff09;二、to_string()&#xff08;将整数类型转换为字符串类型&#xff09;三、stringstream函数&#xff08;将一个字符串按照指定的分隔符进行分词&#xff09; 字符串处理类 一、stoi()&#xff…...

黑客技术(网络安全)——自学思路

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…...

lNmp安装:

一、LNMP LNMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c; 能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词&#xff0c;具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务器、 PHP&#xff08;或…...

Fisher辨别分析

问题要求 在UCI数据集上的Iris和Sonar数据上验证算法的有效性。训练和测试样本有三种方式&#xff08;三选一&#xff09;进行划分&#xff1a; &#xff08;一&#xff09; 将数据随机分训练和测试&#xff0c;多次平均求结果 &#xff08;二&#xff09;K折交叉验证 &…...

【Zookeeper专题】Zookeeper选举Leader源码解析

目录 前言阅读建议课程内容一、ZK Leader选举流程回顾二、源码流程图三、Leader选举模型图 学习总结 前言 为什么要看源码&#xff1f;说实在博主之前看Spring源码之前没想过这个问题。因为我在看之前就曾听闻大佬们说过【JavaCoder三板斧&#xff1a;Java&#xff0c;Mysql&a…...

机器学习之自训练协同训练

前言 监督学习往往需要大量的标注数据&#xff0c; 而标注数据的成本比较高 &#xff0e; 因此 &#xff0c; 利用大量的无标注数据来提高监督学习的效果有着十分重要的意义&#xff0e; 这种利用少量标注数据和大量无标注数据进行学习的方式称为 半监督学习 &#xff08; 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接口的医疗器械&#xff08;如CT、MRI、CR、DR、DSA、各种窥镜成像系统设备等&#xff09;&#xff0c;实现图像无损传输&#xff0c;实现DICOM胶片打印机回传打印功能&#xff0c;支持各种图像处理&#xff0c;可以进行窗技术调节&#xff0c;与登记台管理系统共…...

企业聊天应用程序使用 Kubernetes

1. 客户端-服务器工作流程 客户端&#xff1a;在我们的架构中&#xff0c;客户端可以分为三种类型&#xff1a;iOS 和 Android 移动应用程序以及 Web 聊天。移动应用程序首先通过 API 网关服务与服务器进行通信&#xff0c;其中客户端会生成一个访问令牌&#xff0c;该令牌将授…...

记录用命令行将项目打包成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基础知识&#xff0c;持续更新中… /dev/null作用 /dev/null 是一个特殊的设备文件&#xff0c;可以将数据重定向到这个文件中&#xff0c;从而实现将输出或错误信息丢弃的效果。在 Linux 系统中&#xf…...

Laya3.0 入门教程

点击play箭头 点击右边的开发者工具 就会弹出 chrome的调试窗口 然后定位到你自己的ts文件 直接在ts里断点即可 不需要js文件 如何自动生成代码&#xff1f; 比如你打开一个新项目 里面显示的是当前场景 只需要点击 UI运行时 右边的框就可以了 他会自动弹窗提示你 创建一个文…...

3D全景虚拟样板间展销系统扩展用户市场范围

VR样板间&#xff0c;能够真实还原现场&#xff0c;定制需要的场景。让一切比真实更真实。用户可以720度看房&#xff0c;自由行走在空间里&#xff0c;直观感受各空间的大小&#xff0c;看到自己家中的“未来样子”&#xff0c;同时通过操控手柄&#xff0c;控制整个智能家居系…...

如何编写lua扩展库

很多人都听过lua,也见过lua脚本,但可能不理解为什么lua脚本里面会有这么多没见过的函数, 而且这些函数功能是如此强大,能上天入地,无所不能 其实这些函数并不是lua自带的,都是由程序作者造出来的隐藏在了他们的主程序里 一般运行lua脚本,我们会使用自带的解释器,当你拿到一份…...

Java List 中存不同的数据类型

在最近的实践中&#xff0c;有人突然问了一个问题&#xff1a; 在 Java 的 List 中可以存不同的数据类型吗&#xff1f; 这个问题突然给问到了&#xff0c;我们都知道 Java 中的 List 中存的是对象&#xff0c;通常我们定义都会这样的定义&#xff1a; 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) 摘要&#xff1a;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是物联网&#xff08;IoT&#xff09;的标准协议&#xff0c;是轻量级的&#xff0c;协议头很小&#xff0c;可以节省网络带宽。MQTT也很有效&#xff0c;与其他消息传递协议相比&#xff0c;客户端通过更短的握手进行连接和身份验证。 以下是本文介绍的MQTT 5.0功能列表&…...

flinkcdc 体验

0 flink版本 踩雷 java代码操作 flink Table/SQL API 和 DataStream API 编写程序后&#xff0c;打成jar包丢到flink集群运行&#xff0c;报错首选需要考虑flink集群版本和 jar包中maven依赖的版本是否一致。 目前网上flink、flinkcdc相关博文绝大部分是基于flink1.13、1.14编…...

Kafka知识补充

如何避免 Rebalance 最简单粗暴的就是 &#xff1a; 减少组成员数量发生变化 每个 Consumer 实例都会定期地向 Coordinator 发送心跳请求&#xff0c;表明它还存活着。如果某个 Consumer 实例不能及时地发送这些心跳请求&#xff0c;Coordinator 就会认为该 Consumer 已经“死…...

【MAC】升级 Mac os 后报错

背景 17 年买的 mac&#xff0c;发现很多软件都无法安装&#xff0c;于是升级 mac os 到 10.13&#xff0c;从官网下载 10.13 版本&#xff0c;之后升级&#xff0c;升级还算顺利。但使用 git 的时候发现出现问题了。 问题 使用 git 出现如下错误 xcrun: error: invalid ac…...

郭锐入局智界,再造一个“荣耀”?

出品 | 何玺排版 | 叶媛4月2日&#xff0c;智界汽车官宣&#xff0c;郭锐出任董事长兼首席执行官&#xff0c;全面负责公司经营管理工作&#xff0c;即日起生效。消息一出&#xff0c;行业侧目。让人们侧目的&#xff0c;不是智界任命高管的消息&#xff0c;而是郭锐这个名字。…...

个人情况随笔

自我介绍技术世界的探索者&#xff0c;一名对代码充满热情的初学者。虽然起步较晚&#xff0c;但始终相信编程是解决问题的艺术&#xff0c;而不仅仅是敲键盘。过往的经历或许与技术无关&#xff0c;但逻辑分析、团队协作和持续学习的能力&#xff0c;是无论哪个领域都通用的财…...

vLLM-v0.11.0保姆级教程:零基础3分钟部署,让大模型推理速度提升5-10倍

vLLM-v0.11.0保姆级教程&#xff1a;零基础3分钟部署&#xff0c;让大模型推理速度提升5-10倍 1. 为什么选择vLLM-v0.11.0&#xff1f; 1.1 大模型推理的痛点 在传统的大语言模型推理过程中&#xff0c;我们常常面临以下挑战&#xff1a; 显存利用率低&#xff1a;KV Cache…...

VS2019项目重构实战:从命名空间到解决方案的全面重命名指南

1. 为什么需要全面重命名项目&#xff1f; 接手他人项目或者复用旧项目框架时&#xff0c;第一件事就是要给项目"改头换面"。这就像买二手房后的装修&#xff0c;不改名字总觉得住着别人的房子。我在团队协作中经常遇到这种情况&#xff1a;某个老项目要适配新业务&a…...

13、探索transforms.RandomRotation()在图像增强中的灵活应用

1. 理解transforms.RandomRotation()的核心功能 当你第一次接触图像数据增强时&#xff0c;可能会被各种变换函数搞得晕头转向。今天我们就来深入聊聊transforms.RandomRotation()这个在PyTorch中非常实用的图像旋转工具。简单来说&#xff0c;它能帮你把图片随机旋转一定角度&…...

CSDN程序员副业图谱技术文章推荐

CSDN程序员副业图谱技术文章推荐CSDN作为国内知名的技术社区&#xff0c;收录了大量关于程序员副业和技术图谱的文章。以下是一些相关的高质量中文文献和技术资源&#xff1a;程序员副业方向《程序员如何开启副业&#xff1a;技术变现的多种途径》《技术副业实战&#xff1a;从…...

ai一键生成node.js环境配置教程,快马平台助你跳过繁琐安装步骤

最近在学习Node.js开发时&#xff0c;发现环境配置这个入门步骤对新手来说确实有点麻烦。不同操作系统下的安装方式差异大&#xff0c;版本选择也让人纠结。好在发现了InsCode(快马)平台的AI辅助开发功能&#xff0c;可以自动生成完整的配置教程&#xff0c;分享下我的使用体验…...

隔离放大器:信号传输的精准隔离与保真核心

信号精准传输与安全隔离是电子系统稳定运行的关键&#xff0c;工业监测、医疗设备、电力系统、新能源转换等领域常面临信号微弱、电磁干扰、高低压共存等挑战。隔离放大器凭借高共模抑制比、强绝缘隔离、低噪声放大等核心优势&#xff0c;破解了传统放大器信号失真、安全隐患等…...

线性基——2026杭电春季联赛第三场1005月球异或

前言 本人蒟蒻&#xff0c;如有错误还请指出。 前不久刚学了线性基&#xff0c;结果就用上了。线性基yyds&#xff01; 没学过线性基的出门左拐 放一个之前写的线性基笔记 原题链接 题目大意 新定义三进制下的异或运算 。 再给你一个长度为 的数组&#xff0c;你可以…...

Xamarin.Macios性能优化终极指南:10个让你的应用运行如飞的技巧

Xamarin.Macios性能优化终极指南&#xff1a;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…...