????????STL set是C++ STL庫提供的一種關(guān)聯(lián)容器,它實(shí)現(xiàn)了一個有序、不重復(fù)的集合。可以將set看作一個集合,該集合中的元素按照一定的關(guān)鍵字有序排列,并且每個元素只出現(xiàn)一次。STL set的底層實(shí)現(xiàn)采用了紅黑樹的數(shù)據(jù)結(jié)構(gòu),具有自動排序和快速查找等特點(diǎn)。
????????STL set的用法和其他STL容器類似,可以使用迭代器訪問集合中的元素,也可以使用STL算法庫提供的算法對集合中的元素進(jìn)行操作。
插入元素:可以使用insert()函數(shù)將一個元素插入到set中。
查找元素:可以使用find()函數(shù)查找set中是否存在某個元素。
刪除元素:可以使用erase()函數(shù)刪除set中的某個元素。
遍歷元素:可以使用迭代器遍歷set中的所有元素,也可以使用STL算法庫提供的算法對元素進(jìn)行遍歷和操作。
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> mySet;
// 插入元素
mySet.insert(3);
mySet.insert(1);
mySet.insert(4);
mySet.insert(2);
mySet.insert(5);
// 遍歷元素
for (auto it = mySet.begin(); it != mySet.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
// 查找元素
auto it = mySet.find(3);
if (it != mySet.end())
{
cout << "Found " << *it << endl;
}
else
{
cout << "Not found" << endl;
}
// 刪除元素
mySet.erase(4);
// 遍歷元素
for (auto x : mySet)
{
cout << x << " ";
}
cout << endl;
return 0;
}
輸出結(jié)果:文章來源:http://www.zghlxwxcb.cn/news/detail-743519.html
1 2 3 4 5
Found 3
1 2 3 5
????????可以看到,我們首先插入了一些元素到set中,然后遍歷元素并輸出。接著我們查找了set中是否存在元素3,并輸出相關(guān)信息。最后,我們刪除了set中的元素4,并再次遍歷元素并輸出??梢钥吹?,刪除元素后set中剩余的元素仍然按照一定的順序排列,并且沒有重復(fù)元素。文章來源地址http://www.zghlxwxcb.cn/news/detail-743519.html
到了這里,關(guān)于STL(第七課):set的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!