C++ STL map的使用

152 阅读1分钟

基本用法

int main(){
	
	map<string,int>a;
	//添加元素 
	a["hell0"]=1;
	a["world"]=2;
	a.insert({"oVo",3}); 
	
	cout<<a["hell0"]<<endl;		//输出1 
	cout<<a["world"]<<endl;		//输出2 
	
	
	
	//遍历
	for(auto i=a.begin();i!=a.end();i++){
		//这里的i是指针,使用箭头指向他的 键和值 
		cout<<i->first<<" "<<i->second<<endl;
	} 
	
	return 0;
} 

map与结构体

int main(){
	
	map<int,Edge>a;
	
	//赋值 
	a[1]={2,2,0};
	a[2]={2,2,0};
	a[0]={2,2,2};
	
	//遍历
	for(auto i=a.begin();i!=a.end();i++){
		cout<<i->first<<" "<<i->second.x<<" "<<i->second.y<<endl;
	} 
	
	//也可以用map来判重
	map<int,bool> b;
	vector<int>c;
	for(int i=1;i<10;i++){
		int tmp=i*13;
		if(!b[i]){	//如果没用过 
			
			c.push_back(i); 
			b[i]=true;
		}
	} 
	for(int i=5;i<15;i++){
		int tmp=i*13;
		if(!b[i]){	//如果没用过 
			
			c.push_back(i); 
			b[i]=true;
		}
	}
	
	for(auto i:c) cout<<i<<" ";
        //输出:1,2,3,4,5,6,7,...14
	
	return 0;
}