set容器、vector、map容器

set容器

set作爲一個容器也是用來存儲同一數據類型的數據類型,並且能從一個數據集合中取出數據,在set中每個元素的值都唯一,而且系統能根據元素的值自動排序

構造set集合的主要目的是爲了快速檢索,使用set前,需要在程序頭文件中包含聲明“#include< set>”

insert()

它不會重複插入相同鍵值的元素,而採取忽略處理。
set容器用 s.insert(temp);進行元素的插入

find()

stl容器set成員函數:find()–返回一個指向被查找到元素的迭代器
if(s.find(i)==s.end()),說明 i 不在set中
另外在買不到的糖果數的題目中也有用到set容器

if(s.find(i)==s.end()){//i不在set中,那麼i就是答案
			cout<<i<<endl;
			break;//找到後跳出循環 
		}

遍歷輸出

只要把元素放進set裏面去,用for循環讀取就可以按序讀取
注意:初始化的方法,和輸出的方式

//定義set容器,排序、避免冗餘 
	set<string>e;
    for(set<string>::iterator it=e.begin();it!=e.end();it++) 
	{
		cout<<"it: "<<*it<<endl;
//		cout<<*it<<endl;

count()

stl容器set成員函數:count()返回集合中某個值元素的個數,這個有點相當於是find(),因爲set容器的數值是唯一的,查找某個值的個數,只能有0和1兩種情況。
另外,在跳蚱蜢的題目中也有用到set容器

set<string> visited;//已經搜索過的局面
if(visited.count(s)==0)//如果沒有搜索過這個局面
    {
        visited.insert(s);
    } 

vector

頭文件“#include< vector>”插入跟查找特定元素不一樣

a.push_back(5); //在a的最後一個向量後插入一個元素,其值爲5

a.pop_back(); //刪除a向量的最後一個元素

a.size(); //返回a中元素的個數;

vector本身是沒有find這一方法,其find是依靠algorithm來實現的。
記着要包含algorithm這一頭文件,其定義了find這一函數。

#include<iostream>
//這個頭文件要寫,拼寫對!!! 
#include <algorithm>
#include<vector>
using namespace std;
int main(){
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
//	定義迭代器
	vector<int>::iterator it;
	it = find(v.begin(),v.end(),12);//Not found 
	it = find(v.begin(),v.end(),2);// Find
	if(it == v.end())
		cout<<"Not found"<<endl; 
	else	
		cout<<"Find"<<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章