c++ set容器 —構造 賦值 大小 交換 插入 刪除 程式碼示例

JzNss.發表於2020-10-17

關注小韓 輕鬆程式設計 一起由淺入深
解析都在程式碼註釋裡 廢話不多說 上菜!!!

#include<iostream>
#include<set>
using namespace std;

/*
1. set簡介:所有元素都會在插入時自動排序  底層結構是二叉樹

2. set和multiset區別:
	set不允許容器中有重複元素
	multiset允許容器中有重複的元素

3. 構造:
	set<T> 預設構造
	set<T> s2(s1);  拷貝構造

4. 過載了等號運算子 可直接等號賦值  s2=s1;

5. 插入資料只有insert方式 (因為是樹結構)  沒有push

6.set的大小和交換:
	size()		//返回容器中元素的個數
	empty()	    //判斷容器是否為空
	s1.swap(s2)		//交換兩個容器的值

7. set插入和刪除

	insert(elem)	//容器中插入元素
	clear()			//清除所有元素
	erase(pos)		//刪除pos迭代器所指的元素。返回下一個元素的迭代器
	erase(beg,end)  //刪除區間內的所有元素  返回一個元素的位置
	erase(elem)     //刪除容器中值elem的元素
*/

void printset(set<int> s)
{
	for (set<int>::iterator it = s.begin(); it != s.end(); it++)
		cout << *it << " ";
	cout << endl;
}



void test()
{
	set<int> st;
	st.insert(50);
	st.insert(30);
	st.insert(20);
	st.insert(10);
	st.insert(40);

	printset(st);  //列印輸出容器內的值

	//刪除首元素
	st.erase(st.begin());  // 引數是迭代器
	printset(st);  //刪除的是;排好序的首元素10

	//刪除過載版本
	st.erase(30);
	printset(st);  //刪除30

	//清空
	st.erase(st.begin(), st.end());
	printset(st);

	st.clear();
}


int main()
{

	test();
	return 0;
}

碼字不易 有幫助記得點贊
有疑問歡迎評論區留言!!

相關文章