C++ 刷算法题笔记

本文详细介绍了如何在C++中将字符串转换为整数,使用了atoi函数结合substr方法。此外,还展示了如何定义并使用结构体进行数据存储,以及通过自定义比较函数对结构体数组进行排序。文章进一步解释了如何从输入文件读取数据,并利用unordered_map进行高效的数据查找和计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

string转int

string s;
int num;
//将s从第i个切m个字符串
//.c_str()变指针再转int
num = atoi(s.substr(i,m).c_str());

定义结构体,sorted比较

#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
struct node{
	string t;
	int value;
}; 
bool cmp(const node &a, const node &b){
	return a.value!=b.value ? a.value>b.value:a.t<b.t;
}
int main(){
    vector<node> ans(n);
    sort(ans.begin(), ans.end(), cmp);
    return 0;
}

读取输入文件

freopen("input.txt","r",stdin);

string t

截取

t.substr(5,10) //截取下标为5的后面10位字符串

printf("%s", t.c_str()); //打印

unordered_map

            unordered_map<string, int> m;
			for(int j=0;j<n;j++){
				if(v[j].t.substr(4,6) == s)
					m[v[j].t.substr(1,3)]++;
			}
			for(auto it : m)
				ans.push_back({it.first, it.second});

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值