맵의 기본적인 사용법
맵은 두 개씩 짝을 이루는 데이터를 저장하는 컨테이너이다. 정렬된 위치에 삽입한다. 항상 정렬된 상태로 관리되므로 이분 검색 기법을 사용할 수 있으며 따라서 요소가 아무리 많아도 굉장히 빠르게 검색할 수 있다. 대량의 데이터를 신속하게 검색해야 할 필요가 있을 때 맵이 주로 사용된다.
[code]
#include <iostream>
#include <string>
#include <map>
using namespace std;
struct SProduct
{
string Name;
int Price;
} arPro[]={
{"맛동산",500},{"박카스",400},{"네스카페",250},{"신라면",450},
{"88라이트",1900},{"불티나",300},{"스타킹",700},{"김치",2000},
{"신문",500},{"비타500",500},{"비타1000",1000},{"왕꿈틀이",900},
{"뽀빠이",200},{"위스퍼",800},{"콘텍600",600},{"페리오치약",2200},
{"모나미볼펜",90},{"까페라떼",990},{"밧데리",1000},{"쵸코파이",250},
};
void main()
{
map<string,int> mPro;
map<string,int>::iterator it;
int i;
string Name;
for (i=0;i<sizeof(arPro)/sizeof(arPro[0]);i++) {
mPro[arPro[i].Name]=arPro[i].Price;
}
for (;;) {
cout << "상품명을 입력하시오(끝낼때는 '끝'입력) : ";
cin >> Name;
if (Name=="끝") break;
it=mPro.find(Name);
if (it == mPro.end()) {
cout << "그런 제품은 없습니다." << endl;
} else {
cout << Name << "의 가격은 " << it->second << "입니다." << endl;
}
}
}
[/code]
맵은 두 개씩 짝을 이루는 데이터를 저장하는 컨테이너이다. 정렬된 위치에 삽입한다. 항상 정렬된 상태로 관리되므로 이분 검색 기법을 사용할 수 있으며 따라서 요소가 아무리 많아도 굉장히 빠르게 검색할 수 있다. 대량의 데이터를 신속하게 검색해야 할 필요가 있을 때 맵이 주로 사용된다.
[code]
#include <iostream>
#include <string>
#include <map>
using namespace std;
struct SProduct
{
string Name;
int Price;
} arPro[]={
{"맛동산",500},{"박카스",400},{"네스카페",250},{"신라면",450},
{"88라이트",1900},{"불티나",300},{"스타킹",700},{"김치",2000},
{"신문",500},{"비타500",500},{"비타1000",1000},{"왕꿈틀이",900},
{"뽀빠이",200},{"위스퍼",800},{"콘텍600",600},{"페리오치약",2200},
{"모나미볼펜",90},{"까페라떼",990},{"밧데리",1000},{"쵸코파이",250},
};
void main()
{
map<string,int> mPro;
map<string,int>::iterator it;
int i;
string Name;
for (i=0;i<sizeof(arPro)/sizeof(arPro[0]);i++) {
mPro[arPro[i].Name]=arPro[i].Price;
}
for (;;) {
cout << "상품명을 입력하시오(끝낼때는 '끝'입력) : ";
cin >> Name;
if (Name=="끝") break;
it=mPro.find(Name);
if (it == mPro.end()) {
cout << "그런 제품은 없습니다." << endl;
} else {
cout << Name << "의 가격은 " << it->second << "입니다." << endl;
}
}
}
[/code]
'Native > C++' 카테고리의 다른 글
About modifier (0) | 2013.10.02 |
---|---|
반복자 (iterator) 사용하기 (0) | 2013.10.02 |
리스트 (list) (0) | 2013.10.02 |
벡터 (vector) (0) | 2013.10.02 |
메모리 자동 해제 (auto_ptr) (0) | 2013.10.02 |