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

C++常用算法函数

1、排序 :std::sort

#include <algorithm>
#include <vector>std::vector<int> v = {4, 2, 5, 3, 1};
std::sort(v.begin(), v.end()); // 将v中的元素按升序排序

2、查找: std::find

#include <algorithm>
#include <vector>std::vector<int> v = {1, 2, 3, 4, 5};
auto it = std::find(v.begin(), v.end(), 3); // 查找元素3
if (it != v.end()) {// 找到元素
}

3、计数: std::count

#include <algorithm>
#include <vector>std::vector<int> v = {1, 2, 3, 3, 4, 5};
int countNum = std::count(v.begin(), v.end(), 3); // 计数元素3的个数

4、归约: std::accumulate

#include <algorithm>
#include <numeric>
#include <vector>std::vector<int> v = {1, 2, 3, 4, 5};
int sum = std::accumulate(v.begin(), v.end(), 0); // 计算元素总和

5、填充: std::fill

#include <algorithm>
#include <vector>std::vector<int> v(5);
std::fill(v.begin(), v.end(), 10); // 用10填充v中的所有元素

6、复制:std::copy

#include <algorithm>
#include <numeric>
#include <vector>std::vector<int> nums = {4, 2, 5, 3, 8, 9, 6};
std::vector<int> nums_copy(nums.size());
std::copy(nums.begin(), nums.end(), nums_copy.begin());

7、合并:std::merge

#include <algorithm>
#include <numeric>
#include <vector>
// 分割和合并
std::vector<int> even, odd;
for (int num : nums) {if (num % 2 == 0) {even.push_back(num);} else {odd.push_back(num);}
}
// 分割完成,合并结果
std::vector<int> result;
std::merge(even.begin(), even.end(), odd.begin(), odd.end(), std::back_inserter(result));

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数智化人物展】合思创始人兼CEO马春荃:数字化工具,帮助企业挖出更多净利润...
  • OpenSSL自签名证书
  • 力扣刷题总结 -- 数组24
  • @Transactional事务注解内含乾坤?
  • Shell的简单介绍(1)
  • “开源与闭源:AI大模型发展的未来之路“
  • 计算机网络学习笔记——网络层(b站)
  • 关于ida如何进行远程linux调试(详解)
  • Gradio 案例——将文本文件转为词云图
  • 科研数据分析常见问题
  • CSPM.pdf
  • 中国Scada市场现状,国内厂家已占领65%
  • springboot 集成minio 实现文件上传
  • 特别实用的8个机器学习算法总结!建议收藏,反复观看!
  • C++操纵符用法
  • C++入门教程(10):for 语句
  • exif信息对照
  • IDEA 插件开发入门教程
  • js对象的深浅拷贝
  • node.js
  • Otto开发初探——微服务依赖管理新利器
  • Unix命令
  • 我是如何设计 Upload 上传组件的
  • 小程序开发中的那些坑
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #DBA杂记1
  • $(selector).each()和$.each()的区别
  • (4)Elastix图像配准:3D图像
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (力扣题库)跳跃游戏II(c++)
  • (六)c52学习之旅-独立按键
  • (十三)Flink SQL
  • (转) Android中ViewStub组件使用
  • (转)http协议
  • (转)四层和七层负载均衡的区别
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 服务 ServiceController
  • .net网站发布-允许更新此预编译站点
  • .net下的富文本编辑器FCKeditor的配置方法
  • .Net中ListT 泛型转成DataTable、DataSet
  • .Net组件程序设计之线程、并发管理(一)
  • @RestControllerAdvice异常统一处理类失效原因
  • [20170705]diff比较执行结果的内容.txt
  • [C++][STL源码剖析] 详解AVL树的实现
  • [Cesium学习]
  • [CF226E]Noble Knight's Path
  • [CocosCreator]Android的增加AndroidX的动态权限
  • [codeforces]Levko and Permutation
  • [Go WebSocket] 多房间的聊天室(五)用多个小锁代替大锁,提高效率