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

C++ STL编程 vector空间预留、vector高效删除、vector数据排序、vector代码练习

vector空间预留,作用是避免申请每次申请内存,提高运行效率。

对应的接口是 vector.reverse()

vector的高效删除,对应的代码见下,一个时间复杂度是n,一个时间复杂度是1

#include<iostream>
#include<vector>using namespace std;void removeal(vector<int>& v, int index) {v.erase(v.begin() + index); // 时间复杂度是n
}void remove2(vector<int>& v, int index) {swap(v[index], v.back()); // 时间复杂度为1v.pop_back();
}void printVector(vector<int>& v) {for (int i = 0; i < v.size(); ++i) {cout << v[i] << " ";}cout << endl;
}int main() {vector<int> v;cout << "r1: ";for (int i = 0; i < 150006; ++i) {v.push_back(i);}for (int i = 0; i < 150000; ++i) {removeal(v, 4);}	cout << "r1~end";//printVector(v);cout << "r2: ";for (int i = 0; i < 150006; ++i) {v.push_back(i);}for (int i = 0; i < 150000; ++i) {remove2(v, 4);}cout << "r2~end()"; //printVector(v);return 0;
}

vector数据排序,代码见下:

#include<iostream>
#include<algorithm>
#include<vector>using namespace std;void printVector(const vector<int>& v) {for (int i = 0; i < v.size(); ++i) {cout << v[i] << " ";}cout << endl;
}bool cmp(int a, int b) {return a > b;
}int main() {vector<int> v = { 2, 3, 9, 5, 6, 7 };sort(v.begin(), v.end(), cmp);// 这个是默认从小到大排序,可以加个cmp就可以告诉他咋排序printVector(v);
}

代码练习,对应力扣,数组串联,代码见下

class Solution {
public:vector<int> getConcatenation(vector<int>& nums) {int n = nums.size();vector<int> ans(nums);ans.resize(2*n);for(int i=0; i<n; ++i){ans[i+n] = nums[i];}return ans;}
};

http://www.xdnf.cn/news/397459.html

相关文章:

  • 风扇接口
  • 自制PowerPoint荧光笔插件指南
  • 集合(超详细)
  • 【人工智能】DeepSeek的崛起-下一代AI模型的秘密武器
  • 微调自qwen3的无审查大模型(需谨慎使用):Josiefied-Qwen3-8B-abliterated-v1
  • LeetCode 热题 100 101. 对称二叉树
  • 单链表C语言实现(付代码全)
  • 进程检测与控制
  • C++学习之STL学习
  • 联合类型的逻辑或关系与类型保护
  • 关于我在实现用户头像更换时遇到的图片上传和保存的问题
  • Colab使用_文件操作
  • C++.IP协议通信
  • 【C++进阶】第3课—二叉搜索树
  • C++猴子摘桃 2024年信息素养大赛复赛 C++小学/初中组 算法创意实践挑战赛 真题详细解析
  • [超详细,推荐!!!]前端性能优化策略详解
  • VC++ 获取CPU信息的两种方法
  • POSIX信号量
  • 【软件测试】基于项目驱动的功能测试报告(持续更新)
  • k8s中ingress-nginx介绍
  • Spring Boot 中的重试机制
  • 【Python】Python类型标注革命:Annotated类型深度解析与实战
  • 匈牙利算法
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十七)
  • java中对象的比较
  • 【文献阅读】地方政府驱动企业参与乡村振兴的机制——乡村振兴注意力视角的分析
  • 【工作记录】crmeb后端项目打开、运行
  • 【Flask开发踩坑实录】pip 安装报错:“No matching distribution found” 的根本原因及解决方案!
  • 1688 开放平台接口对接实战:商品实时数据采集 API 开发全流程
  • cmake:test project