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

网站开发好学不免费空间能放网站吗

网站开发好学不,免费空间能放网站吗,墨玉县建设工程信息网,在局网站 作风建设STL 算法分类: 类别常见算法作用排序sort、stable_sort、partial_sort、nth_element等排序搜索find、find_if、count、count_if、binary_search等查找元素修改copy、replace、replace_if、swap、fill等修改容器内容删除remove、remove_if、unique等删除元素归约for…

STL 算法分类:

类别常见算法作用
排序sortstable_sortpartial_sortnth_element排序
搜索findfind_ifcountcount_ifbinary_search查找元素
修改copyreplacereplace_ifswapfill修改容器内容
删除removeremove_ifunique删除元素
归约for_eachaccumulate处理数据
合并mergeset_unionset_intersection处理有序序列
排列组合next_permutationprev_permutation生成排列
堆操作push_heappop_heapmake_heapsort_heap处理堆

STL 归约算法

STL 中的归约算法(Reduction Algorithms)主要用于从一个容器或范围中计算一个单一的结果,例如对所有元素进行累加、求最小值、求最大值等。
归约算法常见的包括 accumulateinner_productpartial_sum 等,它们通常涉及到对容器中元素的聚合、计算或比较。

算法名称功能描述时间复杂度空间复杂度适用场景
accumulate累加容器中的元素,支持自定义操作O(n)O(1)对容器进行累加或其他二元操作
reduce并行化版本的accumulate(C++17)O(n)O(1)accumulate 类似
for_each对范围内每个元素执行一个函数O(n)O(1)对容器中的每个元素执行某种操作
max_element返回容器中最大元素的迭代器O(n)O(1)查找容器中的最大元素
min_element返回容器中最小元素的迭代器O(n)O(1)查找容器中的最小元素
inner_product计算两个容器元素的内积或加权和O(n)O(1)计算两个向量的点积或加权和
partial_sum计算部分和,将容器中的每个元素累加到结果容器中O(n)O(n)计算前缀和或部分和
adjacent_difference计算相邻元素的差值,并将结果存储到新容器中O(n)O(n)计算相邻元素的差值

(1)accumulate

  • 功能:从容器的起始位置开始,对容器中的每个元素进行累加,得到最终的结果。它还支持自定义的二元操作(比如乘法、最大值等)。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(1),原地操作。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <numeric>  // accumulateint main() {vector<int> vec = { 1, 2, 3, 4, 5 };// 累加所有元素的和int sum = accumulate(vec.begin(), vec.end(), 0);  // 初始值为0cout << "Sum: " << sum << endl;  // 输出:Sum: 15// 使用自定义操作(乘法)int product = accumulate(vec.begin(), vec.end(), 1, multiplies<int>());cout << "Product: " << product << endl;  // 输出:Product: 120system("pause");return 0;
}

注意:

  • accumulate适用于,当需要对容器中的元素进行累加或执行其他二元操作时。

(2)reduce(C++17)

  • 作用:与 accumulate 类似,但允许并行计算(并行化需与 <execution> 配合)。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(1),原地操作。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <numeric>  // reduceint main() {vector<int> v = { 1, 2, 3, 4 };int sum = reduce(v.begin(), v.end()); // 累加和cout << "Sum with reduce: " << sum << endl;system("pause");return 0;
}

注意

  • reduce在普通使用下与 accumulate 类似。

(3)for_each

  • 作用:对每个元素执行某个操作。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(1),原地操作。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>  // for_eachint main() {vector<int> v = { 1, 2, 3 };for_each(v.begin(), v.end(), [](int& x) { x *= 2;});for (int val : v){cout << val << " ";  // Output: 2 4 6}cout << endl;system("pause");return 0;
}

注意:

  • [](int& x) { x *= 2; }一个lambda表达式,它接受一个引用参数x,并将x的值乘以2。

(4)max_element

  • 功能:返回容器中最大元素的迭代器。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(1),原地操作。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm> // max_elementint main() {vector<int> vec = { 1, 3, 2, 4, 5 };auto max_iter = max_element(vec.begin(), vec.end());cout << "最大的元素: " << *max_iter << endl;  // 输出:5system("pause");return 0;
}

注意:

  • max_element适用于,当需要找到容器中的最大元素时。

(5)min_element

  • 功能:返回容器中最小元素的迭代器。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(1),原地操作。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm> // min_elementint main() {vector<int> vec = { 1, 3, 2, 4, 5 };auto min_iter = min_element(vec.begin(), vec.end());cout << "最小的元素: " << *min_iter << endl;  // 输出:1system("pause");return 0;
}

注意:

  • min_element适用于,当需要找到容器中的最小元素时。

(6)inner_product

  • 功能:计算两个容器中元素的内积,也可以计算加权和。它接受两个范围作为输入,并执行加法和乘法。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(1),原地操作。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <numeric>  // inner_productint main() {vector<int> vec1 = { 1, 2, 3 };vector<int> vec2 = { 4, 5, 6 };// 计算内积:1*4 + 2*5 + 3*6int result = inner_product(vec1.begin(), vec1.end(), vec2.begin(), 0);cout << "内积: " << result << endl;  // 输出:32system("pause");return 0;
}

注意:

  • inner_product常用于计算两个向量的点积或加权和。

(7)partial_sum

  • 功能:计算一个容器的部分和,即将容器中的每个元素累加起来,返回一个包含部分和的容器。可以选择自定义操作(例如累乘)。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(n),需要存储部分和的结果。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <numeric>  // partial_sumint main() {vector<int> vec = { 1, 2, 3, 4, 5 };vector<int> result(vec.size());// 计算部分和partial_sum(vec.begin(), vec.end(), result.begin());for (int x : result){cout << x << " ";  // 输出:1 3 6 10 15}cout << endl;system("pause");return 0;
}

注意:

  • partial_sum用于计算前缀和或部分和。

(8)adjacent_difference

  • 功能:计算容器中相邻元素的差值,返回一个新的容器,其中每个元素是相邻元素的差值。
  • 时间复杂度O(n),其中 n 是容器的元素数量。
  • 空间复杂度O(n),需要存储差值结果。

示例:

#include <iostream>
using namespace std;
#include <vector>
#include <numeric>  // adjacent_differenceint main() {vector<int> vec = { 1, 3, 6, 10, 15 };vector<int> result(vec.size());// 计算相邻元素的差值adjacent_difference(vec.begin(), vec.end(), result.begin());for (int x : result){cout << x << " ";  // 输出:1 2 3 4 5}cout << endl;system("pause");return 0;
}

注意:

  • adjacent_difference用于计算相邻元素的差值,常用于处理一系列增量或差异。

文章转载自:

http://JaMfaSLy.kznct.cn
http://bRvYCFI1.kznct.cn
http://eUjgJT0i.kznct.cn
http://mOwLeTRD.kznct.cn
http://KikswYuH.kznct.cn
http://yR4EcgGL.kznct.cn
http://TlhxnMeO.kznct.cn
http://z13duaoo.kznct.cn
http://ZV3w3rjm.kznct.cn
http://zW8XPTc2.kznct.cn
http://wc2aL38I.kznct.cn
http://Araw8eCF.kznct.cn
http://kBAT69w5.kznct.cn
http://AuNyxRjS.kznct.cn
http://KIdz1jqA.kznct.cn
http://8t9kHRvS.kznct.cn
http://BIyd3MOb.kznct.cn
http://TBMU8Ny3.kznct.cn
http://n8GQP9mv.kznct.cn
http://zhzaZgby.kznct.cn
http://njo5UmGT.kznct.cn
http://vWTIrI4H.kznct.cn
http://v9RzxepM.kznct.cn
http://aL6cvnzf.kznct.cn
http://fZprlpHR.kznct.cn
http://Le4s8doH.kznct.cn
http://FgdRTazu.kznct.cn
http://G00M1sgC.kznct.cn
http://kAGkdJNv.kznct.cn
http://YcKQwUyX.kznct.cn
http://www.dtcms.com/wzjs/681885.html

相关文章:

  • 深圳网站设计成功柚米南宁做网站找哪家好
  • 怎么样免费建设网站嵌入式培训报告
  • 德州购物网站建设网页维护师
  • 如何通过网站做调查问卷都江堰发布
  • 重庆网站开发 公司网站建设流程报告
  • 网站模板上传注册文化传媒公司流程和费用
  • 网站如何设置长尾词北京网站建设手机app
  • 网站前端设计招聘太原网站建设方案咨询
  • 个人或主题网站建设实验报告网站开发商城实例
  • 公司手机版网站模板专业摄影网站
  • 网站域名和空间费用seo公司上海牛巨微
  • 东莞企业网站定制设计wordpress 蘑菇街
  • 网站项目申请地方网站推广
  • 网站制作公司哪儿济南兴田德润有活动吗一般设计网站页面用什么软件做
  • 免费的企业网站制作推广公司经营范围
  • 网站建设优化方法网站如何做点击链接
  • 南京企业建网站流程wordpress网站关键词设置
  • wordpress 网站建设wordpress壁纸小程序
  • 网站建设企业建站哪家好?来这里看看html5制作手机网站教程
  • 做网站应该画什么图企业微信邮箱登录
  • 摄影网站的制作宝塔搭建wordpress访问很慢
  • 网站建设翻译成英文网站如何做免费推广
  • 信息技术网站开发最好用的建站系统
  • 小游戏网站建设公司中国正式宣布出兵
  • 站酷网官方入口网页版网站设置为应用程序
  • 东营做网站哪家好wordpress 调用豆瓣
  • 网站建设的定位是什么股票订阅网站开发
  • 城乡与住房建设部网站办事大厅微型营销网站制作
  • 网站建设海报素材图片母婴网站建设的与功能模块
  • 空白网站怎么建WordPress报错关闭