[C/C++] map

Alexandria·2024년 3월 4일
0

C lang

목록 보기
5/14
post-thumbnail

1. 삽입

으로 구성되며, 키의 중복은 허용되지 않는 구조이며

데이터를 삽입 시 자동으로 오름차순으로 정렬이 된다.

#include <map>
#include <iostream>

int main() {
	std::map<int, std::string> mymap;
	mymap.insert(std::make_pair(1, "one"));
	mymap.insert(std::make_pair(2, "two"));
	mymap.insert(std::make_pair(9, "nine"));
	mymap.insert(std::make_pair(10, "ten"));
	mymap.insert(std::make_pair(-5, "negative"));
}

2. 검색

find의 결과가 end가 아니라면 찾고자 하는 요소가 존재한다.

#include <map>
#include <iostream>

int main() {
	std::map<int, std::string> mymap;
    mymap.insert(std::make_pair(1, "one"));
    mymap.insert(std::make_pair(2, "two"));
    mymap.insert(std::make_pair(9, "nine"));
    mymap.insert(std::make_pair(10, "ten"));
    mymap.insert(std::make_pair(-5, "negative"));

    if(mymap.find(9) != mymap.end()) std::cout << "find : " << mymap[9] << std::endl;
	return 0;
}

3. 읽기

인덱스를 통해서 데이터를 읽을 수 있으며

반복문을 통해서 키와 값을 읽을 수 있다.

#include <map>
#include <iostream>

int main() {
    std::map<int, std::string> mymap;
	mymap.insert(std::make_pair(1, "one"));
    mymap.insert(std::make_pair(2, "two"));
    mymap.insert(std::make_pair(9, "nine"));
    mymap.insert(std::make_pair(10, "ten"));
    mymap.insert(std::make_pair(-5, "negative"));

	std::cout << mymap[2] << std::endl;
	std::cout << mymap[9] << std::endl;
	std::cout << mymap[1] << std::endl;

	for(std::map<int, std::string>::iterator iter = mymap.begin(); iter != mymap.end(); iter ++)
	{
		std::cout << iter->first << " : " << iter->second << std::endl;
	}
}

4. 삭제

erase에 키값을 전달하여 요소를 삭제할 수 있으며

clear를 통해 모든 요소를 삭제할 수 있다.

#include <map>
#include <iostream>

int main() {
    std::map<int, std::string> mymap;
	mymap.insert(std::make_pair(1, "one"));
    mymap.insert(std::make_pair(2, "two"));
    mymap.insert(std::make_pair(9, "nine"));
    mymap.insert(std::make_pair(10, "ten"));
    mymap.insert(std::make_pair(-5, "negative"));
	mymap.erase(-5);

	std::cout << mymap[2] << std::endl;
	std::cout << mymap[9] << std::endl;
	std::cout << mymap[1] << std::endl;

	for(std::map<int, std::string>::iterator iter = mymap.begin(); iter != mymap.end(); iter ++)
	{
		std::cout << iter->first << " : " << iter->second << std::endl;
	}
    mymap.clear();
}
profile
IT 도서관

0개의 댓글

관련 채용 정보