两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. 集合論簡(jiǎn)介

集合論,是數(shù)學(xué)的一個(gè)基本的分支學(xué)科,研究對(duì)象是一般集合。集合論在數(shù)學(xué)中占有一個(gè)獨(dú)特的地位,它的基本概念已滲透到數(shù)學(xué)的所有領(lǐng)域。集合論或集論是研究集合(由一堆抽象物件構(gòu)成的整體)的數(shù)學(xué)理論,包含了集合、元素和成員關(guān)系等最基本的數(shù)學(xué)概念。

在我們還在高中教育階段,可能或多或少會(huì)接觸到一些諸如集合并交差的運(yùn)算,而集合論與我們C++的STL運(yùn)算有很多相似而相同的關(guān)系。

2. 集合關(guān)系

我們假設(shè)有兩個(gè)集合:

A={2,4,6}

B={1,2,3,4,5}

在數(shù)學(xué)上

交運(yùn)算可以寫為:QQ圖片20191007181021.png


并運(yùn)算可以寫為:QQ圖片20191007181007.png

差運(yùn)算可以寫為:QQ圖片20191007181041.png

我們以該內(nèi)容為例,進(jìn)行代碼介紹。

3. Algorithm頭文件

STL的算法頭文件,STL中除了我們常用的這些容器文件以外,還有一個(gè)極其重要的頭文件,Algorithm,他是我們常用的標(biāo)準(zhǔn)算法的集合,為我們預(yù)先封裝了我們可能會(huì)用到的算法,比如說(shuō)排序,使用Algorithm頭文件中的sort函數(shù)可以快速幫我們進(jìn)行數(shù)組排序,以下是實(shí)例代碼:

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    int a[6]={1,5,9,4,6,3};
    sort(a,a+6);        //使用STL的快速排序算法
    for(int i=0;i<6;i++){
        cout<<a[i]<<' ';    
    }
}

4. 集合論與STL集合

在數(shù)學(xué)上的并運(yùn)算我們可以使用set_union()函數(shù)進(jìn)行實(shí)現(xiàn),而交運(yùn)算我們也可以使用set_intersection()函數(shù)進(jìn)行實(shí)現(xiàn),差集則使用set_difference()函數(shù)實(shí)現(xiàn),以下是簡(jiǎn)單的實(shí)現(xiàn)代碼,這個(gè)案例會(huì)同時(shí)提供一些前面所學(xué)的知識(shí),當(dāng)作一個(gè)匯總練習(xí)。

#include <iostream>
#include <set>
#include <vector>
#include <algorithm>        //使用算法頭文件
using namespace std;
 
int main(){
    set<int> a, b;           //建立兩個(gè)集合
    vector<int> c;           //建立一個(gè)向量,我們用這個(gè)向量存儲(chǔ)運(yùn)算結(jié)果
    //a = {2,4,6};
    a.insert(2);
    a.insert(4);
    a.insert(6);
    //b = {1,2,3,4,5};
    b.insert(1);
    b.insert(2);
    b.insert(3);
    b.insert(4);
    b.insert(5);
 
    set_union(a.begin(), a.end(), b.begin(), b.end(), back_inserter(c));//并集
    for(vector<int>::iterator it=c.begin();it!=c.end();it++){
        cout<< *it << ' ';
    }
    cout<<endl;
    c.clear();

 
 
    set_intersection(a.begin(), a.end(), b.begin(), b.end(), back_inserter(c));//交集
    for(vector<int>::iterator it=c.begin();it!=c.end();it++){
        cout<< *it << ' ';
    }
    cout<<endl;
    c.clear();
 
    set_difference(a.begin(), a.end(), b.begin(), b.end(), back_inserter(c)); //差集 從B中減去A包含的元素
    for(vector<int>::iterator it=c.begin();it!=c.end();it++){
        cout<< *it << ' ';
    }
    cout<<endl;
    c.clear();
 
    return 0;
}

可以見(jiàn)的,以上的三個(gè)函數(shù),其使用方法均是第一個(gè)集合開(kāi)始到結(jié)束,第二個(gè)集合開(kāi)始到結(jié)束,然后使用back_inserter插入器將數(shù)據(jù)插入到某一個(gè)向量或者其他容器之中,并交差是我們集合運(yùn)算中的最基本的運(yùn)算,有了這幾種運(yùn)算,我們可以構(gòu)建出非常多的集合論中的各種功能,以達(dá)到我們的數(shù)學(xué)功能。


點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫出一個(gè)爬蟲(chóng)的Python編程課程

只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)