2017. 1. 4. 22:57ㆍIT-개발/C및C++
#include <map>
#include <string>
#include <iostream>
using namespace std;
struct Item
{
char Name[32]; // 이름
char Kind; // 종류
int BuyMoney; // 구입 가격
int SkillCd; // 스킬 코드
};
int main()
{
map< char*, Item > Items;
map< char*, Item >::iterator IterPos;
typedef pair< char*, Item > ItemPair;
Item Item1;
strncpy( Item1.Name, "긴칼", 32 );
Item1.Kind = 1; Item1.BuyMoney = 200; Item1.SkillCd = 0;
Item Item2;
strncpy( Item2.Name, "성스러운 방패", 32 );
Item2.Kind = 2; Item2.BuyMoney = 1000; Item2.SkillCd = 4;
Item Item3;
strncpy( Item3.Name, "해머", 32 );
Item3.Kind = 1; Item3.BuyMoney = 500; Item3.SkillCd = 0;
// Items에 아이템 추가
Items.insert( map< char*, Item >::value_type(Item2.Name, Item2) );
Items.insert( ItemPair(Item1.Name, Item1) );
// Items가 비어 있지않다면
if( false == Items.empty() )
{
cout << "저장된 아이템 개수- " << Items.size() << endl;
}
for( IterPos = Items.begin(); IterPos != Items.end(); ++IterPos )
{
cout << "이름: " << IterPos->first << ", 가격: " << IterPos->second.BuyMoney << endl;
}
IterPos = Items.find("긴칼");
if( IterPos == Items.end() ) {
cout << "아이템'긴칼'이 없습니다." << endl;
}
cout << endl;
cout << "올림차순으로 정렬되어있는 map(Key 자료형으로string 사용)" << endl;
map< string, Item, less<string> > Items2;
map< string, Item, less<string> >::iterator IterPos2;
Items2.insert( map< string, Item >::value_type(Item2.Name, Item2) );
Items2.insert( ItemPair(Item1.Name, Item1) );
// operator[]를 사용하여 저장
Items2[Item3.Name] = Item3;
for( IterPos2 = Items2.begin(); IterPos2 != Items2.end(); ++IterPos2 )
{
cout << "이름: " << IterPos2->first << ", 가격: " << IterPos2->second.BuyMoney << endl;
}
cout << endl;
cout << "해머의 가격은 얼마? ";
IterPos2 = Items2.find("해머");
if( IterPos2 != Items2.end() ) {
cout << IterPos2->second.BuyMoney << endl;
}
else {
cout << "해머는 없습니다" << endl;
}
cout << endl;
// 아이템 "긴칼"을 삭제한다.
IterPos2 = Items2.find("긴칼");
if( IterPos2 != Items2.end() ) {
Items2.erase( IterPos2 );
}
cout << "Items2에 있는 아이템 개수: " << Items2.size() << endl;
return 0;
}
'IT-개발 > C및C++' 카테고리의 다른 글
STL - Set - sample(2) (0) | 2017.01.04 |
---|---|
STL - Set - sample(1) (0) | 2017.01.04 |
STL - map - sample(1) (0) | 2017.01.04 |
STL - hash_map - sample(2) (0) | 2017.01.04 |
STL - hash_map - sample(1) (0) | 2017.01.04 |