程序设计笔记

news/2025/4/1 19:37:58/文章来源:https://www.cnblogs.com/Phrink734/p/18800943

常见快速类型转换

1.int ->string

#include <string>
#include <iostream>int num = 123;
std::string str = std::to_string(num);
std::cout << str << std::endl; // 输出 "123"

2.string -> int

#include <sstream>
int str_to_int(string str_) {int num;std::stringstream ss(str_);ss >> num; // 从字符串流读取到 intreturn num;//0123 -> 123
}

STL常见用法

String

快速清空数组为0/-1,但是不建议为其他除了0/-1之外的数字

#include <cstring> // for memsetint arr[1000];
memset(arr, 0, sizeof(arr)); // 全部置 0 

其他算法

查找类

高效查找两个固定数组的共同元素

哈希

//哈希
#include <unordered_set>
#include <vector>long long count_ele(const std::vector<long long> &a,const std::vector<long long> &b) {std::unordered_set<long long> set_a(a.begin(),a.end()); // 将数组 a 存入哈希表long long count = 0;for (int num : b) {if (set_a.count(num)) { // 检查 b 的元素是否在 a 中存在count++;}}return count;
}

双指针

long long count_elements(std::vector<long long> &a, std::vector<long long> &b) {std::sort(a.begin(), a.end()); std::sort(b.begin(), b.end()); long long i = 0, j = 0, count = 0;while (i < a.size() && j < b.size()) {if (a[i] == b[j]) {count++;i++;j++;} else if (a[i] < b[j]) {i++;} else {j++;}}return count;
}

gcd lcm

lld gcd(lld x, lld y) {if (y == 0) {return x;} else {return gcd(y, x % y);}
}lld lcm(lld x, lld y) { return x * y / gcd(x, y); 
}

附录

ASCII对照表

//number
0: 48
b: 49
...  
9: 57
//快速把char输出为int
cout << x - 48 << endl;//word
a: 97
b: 98
...
z: 122

头文件

#include <algorithm>
#include <cstdio>
#include <cstring>
#include <functional>
#include <iostream>
#include <ostream>
#include <sstream>
#include <string>#define lld long long // long long 的printf 占位符是lld
#define ENDL '\n'     // 将 endl 替换为 \n 取消缓冲区const long long MAX_ = 1e9;using std::cin;
using std::cout;
using std::endl;
using std::string;
已知两个固定数组的大小和内容,查找两个数组a b有多少共同元素 
高效的算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908249.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CDR-文档操作

CDR的文档、视图、对象的基本操作--本篇导航--文档操作(新建、保存、导出) 视图操作(缩放、移动) 对象操作(移动、旋转、缩放、复制、颜色) 编辑工具栏 辅助线界面及工作流程 工作流程:新建文档,在文档中输入文字、图形、或导入外部的图片做排版,可新建多个页面,保存…

1010 图之图

\(因为题解感觉已经很周到了仅为不懂根号分治复杂度的做一个补充\) \(就是反向插入边时这样的点最多有m/lim个 那么平均到每个位置所贡献的压力也为m/lim\)#include<bits/stdc++.h> #define int long long #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),…

Linux系统ubuntu20.04 无人机PX4 开发环境搭建

安装Ubuntu对应版本的Ros 此处省略 PX4固件下载PX4的源码处于GitHub,因为众所周知的原因git clone经常失败,此处从Gitee获取PX4源码和依赖模块。git clone https://gitee.com/voima/PX4-Autopilot.git使用cd命令切换到 px4项目文件目录:cd ~/PX4-Autopilot #切换到1.14.0分支…

jmeter性能测试(2)——插件和nmon

一、性能插件认识1.在jmeter中添加性能插件2.下载两个jar包和启动包3.存放路径 (1)路径1(2)启动插件(4)将所有插件添加到线程中 常用的性能指标插件 1. jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表) 聚合报告里,Throughput是按请求个数来展示的,比如…

jmeter性能测试(2)——实战

一、单接口性能测试(同一用户进行压力测试)POST http://49.233.201.254:8080/cms/manage/loginJump.do POST data:userAccount=admin&loginPwd=123456按100 压力测试(1)在线程中修改虚拟用户数线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数…

2025全国青少年信息素养大赛报名指南(内附报名全流程)

2025全国青少年信息素养大赛报名指南 (内附报名全流程)2025 年预估初赛在 28 万~32 万人次左右,今年竞争会比较激烈,大家提前备考,NOI官网发布了“关于参加CSP-J/S认证需符合年龄条件的公告”,报名参加CSP-J/S的被认证者在当年9月1日(不含)需满12周岁,包括第一轮和第…

Codeforces Round 1013 (Div. 3)(前5)

比赛链接 A:Olympiad Date 让我们开始一个数字计数器 cnt[i] ( 0≤i≤9) 3≤cnt[0],1≤cnt[1],2≤cnt[2], 1≤cnt[3],1≤cnt[5] 答案已找到。如果在计算所有数字之后,没有满足其中一个条件,则没有解决方案,答案为 0. 代码如下 #include <bits/stdc++.h> using namesp…

【题解】E - Replace

背景 这把报了 UnRated 从 E 开始看,于是非常惨烈的只拿下了 E。这个 2054 难度的题居然只有绿。E - Replace 题意 给你两个字符串 \(s,t\),你每次可以把 \(s\) 中的一种字符换成另一种,求把 \(s\) 变成 \(t\) 的最小操作数,可能无解。 思路 我们先考虑无解怎么判:可以得到…

质数筛——欧拉筛

欧拉筛 核心思想 和数只被它最小的质因数筛去 prime_number是当前小于i的所有质数集合 p是prime_number的元素,当没有找到最小质因数pi时,p是j的最小质因数,j可以被筛去,当找到最小质因数时就要退出循环,否则不能保证p是j的最小质因数 算法的时间复杂度:O(n),到n的所有和…

索引的分类

远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克吐温按「数据结构」分类:B+tree索引、Hash索引、Full-text索引。 按「物理存储」分类:聚簇索引(主键索引)、二级索引(辅助索引) 按「字段特性」分类:主键索引、唯一索引、普通索引、前缀…

Linux基本使用-3

常用快捷键使用ctrl + c ==> 强制停止,结束当前命令运行或清空已输入命令ctrl + d ==> 退出登出,退出当前登录账户或退出程序history ==> 查看历史命令!命令前缀 ==> 自动匹配上一个命令ctrl + r ==> 搜索历史命令ctrl + a|e ==> 光…