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

c++笔记

下面给你整理一份 Markdown 格式的 C++ 竞赛速成笔记,可以直接复制到 Typora / VSCode 等编辑器里使用,非常清晰易读。


📘 C++ 竞赛速成笔记(Markdown 版)


#️⃣ 目录

  • 万能头文件
  • 输入与输出
  • 读取整行与分割
  • 数组与容器
  • 排序 sort
  • 自定义排序 cmp
  • map / unordered_map
  • set / unordered_set
  • 优先队列(堆)
  • 字符串与数字转换
  • 字符判断与转换
  • 前缀和模板
  • EOF 输入处理
  • 快速 IO
  • 比赛通用模板

📌 万能头文件

#include <bits/stdc++.h>
using namespace std;

📌 输入与输出

基本类型

int a;
long long b;
string s;cin >> a >> b >> s;
cout << a << " " << b << " " << s << "\n";

📌 读取整行与分割

读取一整行(包括空格)

string line;
getline(cin, line);

如果前面用过 cin >>

cin.ignore();
getline(cin, line);

按空格拆分字符串

string line;
getline(cin, line);stringstream ss(line);
string token;
vector<string> parts;while (ss >> token) {parts.push_back(token);
}

📌 数组与容器

vector 一维数组

vector<int> v(n);
for (int i = 0; i < n; i++)cin >> v[i];

vector 二维数组

vector<vector<int>> a(n, vector<int>(m));

📌 排序 sort

从小到大

sort(v.begin(), v.end());

从大到小

sort(v.begin(), v.end(), greater<int>());

📌 自定义排序 cmp

排结构体

struct Node {int x, y;
};bool cmp(const Node &a, const Node &b) {if (a.x != b.x) return a.x < b.x;return a.y > b.y;
}sort(v.begin(), v.end(), cmp);

📌 map / unordered_map

统计频率

unordered_map<string, int> mp;
mp["hello"]++;

📌 set / unordered_set

unordered_set<int> st;
st.insert(10);if (st.count(10)) {cout << "exists";
}

📌 优先队列(堆)

最大堆

priority_queue<int> pq;
pq.push(5);
pq.push(10);
cout << pq.top(); // 10

最小堆

priority_queue<int, vector<int>, greater<int>> pq;

📌 字符串与数字转换

int x = stoi("123");
long long y = stoll("12345");
string s = to_string(10086);

📌 字符判断与转换

isdigit(c);
isalpha(c);
islower(c);
isupper(c);
tolower(c);
toupper(c);

📌 前缀和模板(重要)

一维前缀和

vector<int> pre(n+1, 0);
for (int i = 1; i <= n; i++)pre[i] = pre[i-1] + a[i];

区间和查询

int sum = pre[r] - pre[l-1];

📌 EOF 输入处理(不确定行数时)

按词读取

string s;
while (cin >> s) {// process
}

按行读取

string line;
while (getline(cin, line)) {// process
}

📌 快速 IO

ios::sync_with_stdio(false);
cin.tie(nullptr);

🧩 比赛通用模板(直接用)

#include <bits/stdc++.h>
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin >> n;vector<int> v(n);for (int i = 0; i < n; i++)cin >> v[i];sort(v.begin(), v.end());for (int x : v)cout << x << " ";cout << "\n";return 0;
}

🎁 如果你愿意,我可以给你:

✔ 字符串处理专题模板

✔ 排序 + 自定义 cmp 专题

✔ BFS / DFS 专题

✔ DP 常用模板(背就能用)

✔ 贪心常见套路总结

只要告诉我你比赛偏什么类型,我会直接给你针对性模板

http://www.zskr.cn/news/74825.html

相关文章:

  • [UVA1316 Supermarket]
  • 靠谱厂房拆迁法律机构排行榜 2026:专业解析与高性价比解决方案
  • 基于先验地图的无人机路径规划
  • Anchor尺寸
  • 西门子S7-1200与施耐德Altivar320通讯 工业自动化场景的总线协议转换方案
  • 跨国数据传输解决方案为企业提供安全与合规保障
  • 数据结构(18) - 实践
  • 题解:qoj5411 杏仁
  • 游记:CSP2025
  • Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
  • 2025年越野轮胎推荐:专业越野胎权威测评
  • 新型网闸使用场景:安全隔离与高效交换的双重突破
  • 详细介绍:二手车销售|汽车销售|基于SprinBoot+vue的二手车交易系统(源码+数据库+文档)
  • 从零到实战:Go 语言高效学习路线
  • 抑郁症治疗指南
  • Less-8 GET-Blind-Boolean Based-Single Quotes - 详解
  • 舒适的轮胎推荐:TOP10舒适胎专业测评
  • 2025年本田雅阁更换轮胎推荐:专业轮胎选择深度解析
  • 论文写作辅助必备!7款AI工具让你轻松搞定论文,查重无忧
  • 12.6
  • Spring Boot和Spring有什么区别?
  • 2025年下半年上海ISO三体系认证服务商全面评测与选择指南
  • P9911 [COCI 2023/2024 #2] Kuglice
  • 工作备注笔记
  • [Record] 杂题选做 2.0
  • 线性规划:拉格朗日函数的对偶函数
  • 2025年苏州咖啡培训基地排行榜,口碑好有实力的咖啡培训机构
  • 【Codeforces】【Div2】1068(cf 2173)
  • 2025年苏州正规调酒培训学校五大排名:高性价比的调酒培训中
  • 12月5日