精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

c++之STL算法(三)

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2023-07-18 15:00 ? 次閱讀

1.算術生成算法--求和accumulate

算術生成算法頭文件
算法簡介:
	容器區間元素求和:accumulate
	像容器中添加元素:fill

accumulate求和:
	accumulate(const _InIt _First, const _InIt _Last, _Ty _Val)
	形參:_First、_Last --元素區間
	      _Val --累加的起始值
重載版本:
	accumulate(const _InIt _First, const _InIt _Last, _Ty _Val, _Fn _Reduce_op)
	形參:_First、_Last --元素區間
		  _Val --起始值
		  _Reduce_op  --運算規則(加、減、乘、除。。。)
#include 
#include 
#include 
#include 
using namespace std;
void test()
{
	vectorvtr;
	for (int i = 1; i <= 5; i++)
	{
		vtr.push_back(i);
	}
	auto sum=accumulate(vtr.begin(), vtr.end(), 0);
	cout ());
	cout 
wKgZomS2NveATo_JAALy07H5cF0016.png

2.算術生成算法--填充fill

void fill(const _FwdIt _First, const _FwdIt _Last, const _Ty& _Val)
函數功能:容器填充
形參:_First、_Last --要填充的區間
      _Val --要填充的值
#include 
#include 
#include 
#include 
using namespace std;
class Print
{
public:
	void operator()(int val)
	{
		cout vtr;
	vtr.resize(10);
	fill(vtr.begin(), vtr.end(), 666);
	for_each(vtr.begin(), vtr.end(), Print());
}
int main()
{
	test();
	system("pause");
	return 0;
}
wKgZomS2N0-AEGp4AALLWR7_uys420.png

3.常用集合算法--求交集set_intersection

常用集合算法:--頭文件
	求交集(即兩個容器相同元素部分):set_intersection()  
	求并集:set_union()
	求差集:set_different()  
求交集:
  _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
  _OutIt set_intersection(_First1, _Last1, _First2, _Last2, _Dest);
  形參:_First1、_Last1 --容器1的區間范圍
        _First2、_Last2 --容器2的區間范圍
		_Dest --結果保存起始迭代器
		_Pred --排序規則
  返回值:返回結果的最后一個元素的下一個位置的迭代器(end)
注意:求交集必須保證元素有序,默認是從小到大
#include 
#include 
#include 
using namespace std;
class Print
{
public:
	void operator()(int val)
	{
		cout t1 = { 1,2,3,4,5,6 };
	vectort2 = { 1,3,5,7,8,9 };
	vectort3;
	//設置t3容器大小,min()為獲取最小值
	t3.resize(min(t1.size(), t2.size()));
	vector::iterator ret=set_intersection(t1.begin(), t1.end(), t2.begin(), t2.end(), t3.begin());
	set_intersection()
	cout 
wKgaomS2N8GAeD1EAAPVpJYgtNo056.png

4.常用集合算法--求并集set_union

求并集:
set_union(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
set_union(_ExPo&&, _FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _FwdIt3 _Dest,_Pr _Pred)
  形參:_First1、_Last1 --容器1的區間范圍
		_First2、_Last2 --容器2的區間范圍
		_Dest --結果保存起始迭代器
		_Pred --排序規則
  返回值:返回結果的最后一個元素的下一個位置的迭代器(end)
注意:求并集必須保證元素有序,默認是從小到大
#include 
#include 
#include 
using namespace std;
class print
{
public:
	void operator()(int val)
	{
		cout v1 = { 1,3,4,6,8,9 };
	vectorv2 = { 2,3,3,4,7,9,10 };
	vectorv3;
	v3.resize(v1.size() + v2.size());
	vector::iterator ret=set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());
	cout 
wKgZomS2OBGAVf5_AAMqEoNpy-A520.png

5.常用集合算法--求差集set_difference

求差集:set_difference()

_OutIt set_difference(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
_OutIt set_difference(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
  形參:_First1、_Last1 --容器1的區間范圍
		_First2、_Last2 --容器2的區間范圍
		_Dest --結果保存起始迭代器
		_Pred --排序規則
  返回值:返回結果的最后一個元素的下一個位置的迭代器(end)
注意:求差集必須保證元素有序,默認是從小到大
#include 
#include 
#include 
using namespace std;
class Print
{
public:
	void operator()(int val)
	{
		cout t1 = { 1,3,5,6,7,9,10 };
	vectort2 = { 2,3,5,8,10 };
	//t1與t2的補集:{1,6,7,9};  --除去和t2相同的元素
	//t2與t1的補集:{2,8} --除去和t1相同的元素
	vectort3;
	//t3分配空間
	t3.resize(max(t2.size(), t1.size()));
	auto ret = set_difference(t1.begin(), t1.end(), t2.begin(), t2.end(), t3.begin());
	cout 
wKgZomS2OHiADvcTAAPyfG5rMss710.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4601

    瀏覽量

    92671
  • C++
    C++
    +關注

    關注

    22

    文章

    2104

    瀏覽量

    73503
  • STL
    STL
    +關注

    關注

    0

    文章

    86

    瀏覽量

    18300
收藏 人收藏

    評論

    相關推薦

    c語言入門知識STL

    這周終于可以給大家把STL方面的面試題總結出來了,突然發現它里面的細節非常多,只有你想不到的,沒有它沒有的。對于C++程序員來說,STL庫里面的知識也是非常重要的,只要想在技術這條路線上有長遠的發展,那么就一定要掌握它。不管是學
    的頭像 發表于 03-10 09:31 ?1089次閱讀

    C++STL算法(二)

    C++STL算法(二)
    的頭像 發表于 07-18 14:49 ?982次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b><b class='flag-5'>STL</b><b class='flag-5'>算法</b>(二)

    C++文件操作

    C++文件操作
    的頭像 發表于 07-21 10:52 ?1084次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b>文件操作

    C++零基礎教程之STL關系類算法,輕松上手C++ STL

    編程語言C++語言
    電子學習
    發布于 :2023年01月14日 12:20:42

    C++零基礎教程之STL集合類算法,輕松上手C++ STL

    編程語言C++語言
    電子學習
    發布于 :2023年01月14日 12:24:57

    C++ STL的概念及舉例

      本篇文章是作者本人使用STL 后的一些看法, 對於想要靠此文章學習STL, 是不可能的. 建議叁后面介紹的一些書入門.   STL的概念   在STL 中, 大至上分
    發表于 08-30 11:39 ?1403次閱讀

    STL算法在GIS中的應用

    使用STL 算法實現GIS 算法可以保證它的簡潔和高效該文結合C++代碼實例抽象出了地理算子的概念應用在GIS 算法當中通過定制適配器來消除
    發表于 06-28 16:55 ?33次下載

    C++課程資料詳細資料合集包括了:面向對象程序設計與C++,算法,函數等

    本文檔的主要內容詳細介紹的是C++課程資料資料合集包括了:面向對象程序設計與C++,算法,函數,概述, C++語言基礎,構造數據類型,數據類型,C+
    發表于 07-09 08:00 ?18次下載
    <b class='flag-5'>C++</b>課程資料詳細資料合集包括了:面向對象程序設計與<b class='flag-5'>C++</b>,<b class='flag-5'>算法</b>,函數等

    C語言教程:STL-for-each算法

    C語言教程:STL-for-each算法(電源技術版面費5400)-文檔為C語言教程:STL-for-each
    發表于 09-17 12:42 ?3次下載
    <b class='flag-5'>C</b>語言教程:<b class='flag-5'>STL</b>-for-each<b class='flag-5'>算法</b>

    C++設計新思維-泛型編程與設計應用

    C++設計新思維-泛型編程與設計應用
    發表于 11-16 15:59 ?3次下載

    STL的概述

    C++ STL 是一套功能強大的 C++ 模板類,提供了通用的模板類和函數,這些模板類和函數可以實現多種流行和常用的算法,關于 STL 呢,
    的頭像 發表于 01-20 17:08 ?1335次閱讀
    <b class='flag-5'>STL</b>的概述

    C++STL庫中的容器

    前面跟大家介紹過STL庫,STL主要是由6大部分組成,其中第一個提到的就是容器,容器在介紹STL中小哥有簡單的跟大家介紹過,今天稍微再詳細介紹一下
    的頭像 發表于 02-21 10:55 ?1181次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b><b class='flag-5'>STL</b>庫中的容器

    C++ STL基本概念是什么

    STL,英文全稱 standard template library,中文可譯為標準模板庫或者泛型庫,其包含有大量的模板類和模板函數,是 C++ 提供的一個基礎模板的集合,用于完成諸如輸入/輸出、數學計算等功能。
    的頭像 發表于 02-27 15:56 ?1330次閱讀
    <b class='flag-5'>C++</b> <b class='flag-5'>STL</b>基本概念是什么

    C++入門通用算法

    C++ 是一種強大的編程語言,它提供了許多通用算法,可以用于各種容器類型。這些算法是通過迭代器來操作容器中的元素,因此它們是通用的,可以用于不同類型的容器。在本篇博客中,我們將詳細介紹 C++
    的頭像 發表于 05-17 09:40 ?633次閱讀

    STL內容介紹

    1 什么是STLSTL(Standard Template Library),即標準模板庫,是一個具有工業強度的,高效的C++程序庫。它被容納于C++標準程序庫(
    的頭像 發表于 11-13 11:32 ?788次閱讀
    <b class='flag-5'>STL</b>內容介紹