C++/c++

[STL] map

Rainbow🌈Coder 2022. 1. 15. 22:06
728x90

반복문 데이터 접근 (first, second)

  • 인덱스 기반 반복문 활용한 예제 
    : 인덱스 기반은 iterator을  활용하여 begin()부터 end()까지 찾는다.
//인덱스기반
for (auto iter = m.begin() ; iter ! =  m.end(); iter++)
{
	cout << iter->first << " " << iter->second << endl;
}
cout << endl;
  • 범위 기반 반복문 활용한 예제 
for (auto iter : m) {
	cout << iter.first << " " << iter.second << endl;
}

 

map에서 삭제하기

map에서 데이터를 삭제하기 위해 활용할 함수는  erase와 clear

(1)특정 위치의 요소 삭제

m.erase(m.begin()+2);

(2)key값을 기준으로 요소 삭제

m.erase("naver");

(3)map의 모든 요소 삭제

  • erase 함수로 모든 요소 삭제 (map의 begin부터 end까지)
m.erase(m.begin(), m.end());
  • clear 함수로 모든 요소 삭제하기
m.clear();

map 사용 구문 ( 삽입, 찾기, 반복문 구현 )

#include <iostream>
#include <map>
using namespace std;
map<string, int> mapset;
int main(void) {

	mapset.insert({ "naver", 100 });
	mapset.insert({ "kakao", 200 });
    mapset.insert({ "line", 200 });

	if (mapset.find("naver") != mapset.end()) 
	{
		cout << "find" << endl;
	}
	else {
		cout << "not find" << endl;
	}

	//인덱스기반
	for (auto iter = mapset.begin() ; iter !=  mapset.end(); iter++)
	{
		cout << iter->first << " " << iter->second << endl;
	}
	cout << endl;

	//범위기반
	for (auto iter : mapset) {
		cout << iter.first << " " << iter.second << endl;
	}

	return 0;
}



728x90