计蒜客练习题:堆积木(vector的内存释放)
给出样例
CASE1:
2 2
1 2
1 2
CASE2:
4 4
3 1
4 3
2 4
2 2
不得不说我之前还没看懂这个是什么意思,以为是重新加载了vector的clear,但是后来仔细想想才发现是当你需要将这个内存释放时才会用到这个,而不是一开始就需要定义进去(蒟蒻哭泣)。
所以只需要在代码中在要释放内存的地方加入
vector <type> x;
v.swap(x);
这两句语句即可

#include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; vector<int> v[n+1]; for (int i = 1; i <= n; i++) v[i].push_back(i); for (int i = 0; i < m; i++) { int tmp1, tmp2; cin >> tmp1 >> tmp2; if (tmp2 == tmp1) continue; for (int j = 0; j < v[tmp2].size(); j++) v[tmp1].push_back(v[tmp2][j]); vector <int>x; v[tmp2].swap(x); } for (int i = 1; i <= n; i++) { for (int j = 0; j < v[i].size(); j++) { if (j == v[i].size()-1) cout << v[i][j]; else cout << v[i][j] << " "; } cout << endl; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人