一、創建set容器
使用set容器需要包含頭文件 #include,創建一個空的set容器十分簡單:
std::set mySet;
以上代碼已經創建了一個空的set容器,可以開始往裡面添加元素。
二、set容器元素的添加與刪除
set容器內的元素都是唯一的、且按照一定的規則進行排序的。set容器的元素插入和刪除非常簡單。
元素的插入可以通過insert函數實現:
std::set mySet; mySet.insert(1); mySet.insert(2); mySet.insert(3);
元素的刪除可以通過erase函數實現,其中包含一個參數表示要刪除的元素,如果沒有該元素,則不進行任何操作:
mySet.erase(2);
三、set容器的遍歷
set容器自帶排序,可以直接進行遍歷。
使用auto關鍵字也可以快速遍歷所有元素,例如:
std::set mySet{1, 5, 3, 2, 4}; for (auto i : mySet) { std::cout << i << " "; } // 打印結果:1 2 3 4 5
四、set容器的查找
set容器提供了find函數用於查找元素,如果找到則返回該元素的迭代器,否則返回end()迭代器。
std::set mySet{1, 5, 3, 2, 4}; auto iterator = mySet.find(3); if (iterator != mySet.end()) { std::cout << "3 exists in mySet" << std::endl; }
五、set容器的特性與應用
set容器只存儲唯一的元素,可以用於去重。同時set容器也自帶排序功能,可以用於排序操作。
例如,可以使用set容器對字符串進行去重操作:
std::set mySet{"apple", "banana", "grape", "apple"}; for (auto i : mySet) { std::cout << i << " "; } // 打印結果:apple banana grape
set容器也可以用於查找一組元素是否包含在另一組元素中,例如判斷兩個字符串是否包含相同的字母:
std::set strSet1{'a', 'b', 'c', 'd'}; std::set strSet2{'c', 'b', 'd', 'a'}; bool isEqual = (strSet1 == strSet2); std::cout << isEqual; // 打印結果:1
六、set容器示例代碼
以下是一個完整的set容器示例代碼:
#include #include int main() { std::set mySet{1, 5, 3, 2, 4}; // 遍歷 for (auto i : mySet) { std::cout << i << " "; } std::cout << std::endl; // 添加元素 mySet.insert(6); // 刪除元素 mySet.erase(2); // 查找元素 auto iterator = mySet.find(3); if (iterator != mySet.end()) { std::cout << "3 exists in mySet" << std::endl; } // 去重過濾重複元素 std::set myStringSet{"apple", "banana", "grape", "apple"}; for (auto i : myStringSet) { std::cout << i << " "; } std::cout << std::endl; // 判斷兩個set是否相等 std::set strSet1{'a', 'b', 'c', 'd'}; std::set strSet2{'c', 'b', 'd', 'a'}; bool isEqual = (strSet1 == strSet2); std::cout << isEqual; return 0; }
原創文章,作者:PYNH,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136487.html