STL學習之set與multiset操作練習

2021-08-13 01:15:40 字數 2347 閱讀 1617

// stl_set_操作.cpp: 定義控制台應用程式的入口點。

///* 乙個集合容器

包含元素唯一

不可以直接訪問元素

採用紅黑樹變體 在插入和刪除上比vector快 wangsl */

#include "stdafx.h"

using namespace std;

#define _crt_secure_no_warnings

#include#include#include "set"

#include #include/* 元素集合,自動排序,不能按照方式插入元素 wangsl */

void testset()

set1.insert(100); set1.insert(100); set1.insert(100);

for (set::iterator it = set1.begin();it!=set1.end();it++)

/* 刪除集合 wangsl */

while (!set1.empty()) }

/* 對於複雜的資料型別 wangsl */

void set_compare()

for (set>::iterator it = set3.begin();it!=set3.end();it++) }

class student

public:

char name[64];

int age;

};/* 仿函式 wangsl */

struct stufunctor

else

return false;

}};void set_class()

}void set_erro_log()

else

cout<< "插入s1失敗!" << endl;

set1.insert(s2);

pair::iterator, bool> pair2 = set1.insert(s5);

if (pair2.second == true)

else

cout << "插入s5失敗!" << endl;

for (set::iterator it = set1.begin(); it != set1.end(); it++) }

/* 要會使用返回值為pair的引數 wangsl */

void set_find_pair()

for (set::iterator it = set1.begin(); it!=set1.end();it++)

cout << endl;

set::iterator it1 = set1.find(5);

cout<< "it1: " << *it1 << endl;

int num1 = set1.count(5);

cout<< "num1:" << num1 << endl;

set::iterator it2 = set1.lower_bound(5); /* 小於5的元素迭代器位置 wangsl */

cout<< "it2: " << *it2 << endl;

set::iterator it3 = set1.upper_bound(5); /* 大於5的迭代器位置 wangsl */

cout << "it3: " << *it3 << endl;

// using _pairib = pair;

// using _pairii = pair;

// using _paircc = pair;

set1.erase(5);

pair::iterator,set::iterator> mypair = set1.equal_range(5);

set::iterator it4 = mypair.first; /* 大於等於5的位置 wangsl */

set::iterator it5 = mypair.second; /* 大於5的位置 wangsl */

cout << "it4: " << *it4 << endl; cout << "it5: " << *it5 << endl;}//

/* multiset操練 wangsl */

void test_multiset()

//遍歷

cout<< "遍歷multiset" << " ";

for (multiset::iterator it = set1.begin(); it!=set1.end(); it++)

cout<< "刪除multiset" << " ";

while (!set1.empty()) }

int main()

STL學習之set容器

set容器只是單純的鍵的集合。除了兩種例外情況外,set容器支援大部分的map操作。建構函式 cpp view plain copy explicit set const compare comp compare const allocator allocator template class in...

STL初步學習(set)

set可以看作乙個集合,可以實現自動排序 公升序 和去重 在許多題目中,都可以使用這個模板庫,減少很多操作,例如p1923 第k小數,當然,這道題有很多奇奇怪怪的做法,分值都不同,之後會講解 set的定義 include 標頭檔案 using namespace std 這條必須加 seta 同ve...

STL系列之六 set與hash set

stl系列之六 set與hash set set和hash set是stl中比較重要的容器,有必要對其進行深入了解。在stl中,set是以紅黑樹 rb tree 作為底層資料結構的,hash set是以hash table 雜湊表 作為底層資料結構的。set可以在時間複雜度為o logn 情況下插入...