C 研發 泛型程式設計 第十九講 常用集合演算法

2021-10-20 07:40:27 字數 1829 閱讀 4555

功能描述:

函式原型:

示例:

#include #include class myprint

};void test01()

vectorvtarget;

//取兩個裡面較小的值給目標容器開闢空間

vtarget.resize(min(v1.size(), v2.size()));

//返回目標容器的最後乙個元素的迭代器位址

vector::iterator itend =

set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());

for_each(vtarget.begin(), itend, myprint());

cout << endl;

}int main()

總結:

功能描述:

函式原型:

示例:

#include #include class myprint

};void test01()

vectorvtarget;

//取兩個容器的和給目標容器開闢空間

vtarget.resize(v1.size() + v2.size());

//返回目標容器的最後乙個元素的迭代器位址

vector::iterator itend =

set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());

for_each(vtarget.begin(), itend, myprint());

cout << endl;

}int main()

總結:

功能描述:

函式原型:

示例:

#include #include class myprint

};void test01()

vectorvtarget;

//取兩個裡面較大的值給目標容器開闢空間

vtarget.resize( max(v1.size() , v2.size()));

//返回目標容器的最後乙個元素的迭代器位址

cout << "v1與v2的差集為: " << endl;

vector::iterator itend =

set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());

for_each(vtarget.begin(), itend, myprint());

cout << endl;

cout << "v2與v1的差集為: " << endl;

itend = set_difference(v2.begin(), v2.end(), v1.begin(), v1.end(), vtarget.begin());

for_each(vtarget.begin(), itend, myprint());

cout << endl;

}int main()

總結:

C 研發 泛型程式設計 第十二講 函式物件

函式物件就是我們說的仿函式。過載函式操作符的類,其物件稱為函式物件。函式物件使用過載的 時,行為類似函式呼叫。本質 函式物件 仿函式 是乙個類建立出的物件,不是乙個函式,只是像函式。函式物件在使用時,可以像普通函式那樣呼叫,可以有引數,可以有返回值 函式物件超出普通函式的概念,函式物件可以有自己的狀...

C 程式設計 泛型集合

using system.collections 非泛型集合 using system.collections.generic 泛型集合 2.1 arraylist集合 增加元素 刪除元素 namespace 集合 arraylist.count console.writeline 集合現在的容量為...

C 常用泛型集合

之前已經整理了泛型和集合的資料,今天來刷一下兩個c 提供的常用泛型集合 list 和dictionary 使用list 泛型集合,需要引入system.collections.generic 命名空間 list 是arraylist的泛型等效類,即list 物件的方法跟arraylist一樣,只不過...