struct Node
{
int value;
Node* prev;
Node* next;
}
새로운 노드가 생성되었으므로 링크 조정을 해야 한다.
New의 다음 노드는 Right가 되고 이전 노드는 Target이 된다.
set<T> st;
#include<iostream>
#include <set>
void main()
{
int arr[] = { 1,2,3,2,6,5,3 };
set<int> scon;
set<int>::iterator it;
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
scon.insert(arr[i]);
}
for (it = scon.begin(); it != scon.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
출력결과
1 2 3 5 6
#include<iostream>
#include <set>
void main()
{
const char* strtmp = "rhrlajrrhtlvek";
set<char> scon(&strtmp[0], &strtmp[15]);
set<char>::iterator it;
for (it = scon.begin(); it != scon.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
출력결과
a e h j k l r t v
map<key, data> mp;
Map<string, int> person;
Person'["김모모"] = 43;
Person'["이마마"] = 10;
#include<iostream>
#include<map>
#include<string>
void main()
{
map <string, int> person;
map <string, int>::iterator it;
string name;
person["김모모"] = 30; // {'김모모' : 30} key-value 형태
person["이모모"] = 25;
person["박모모"] = 20;
while (true)
{
cout << "이름 입력 : ";
cin >> name;
if (name == "q")
break;
it = person.find(name);
if (it == person.end()) // 찾지 못했다는 의미
{
cout << "그런 사람은 없습니다." << endl;
}
else
{
cout << it->first << " , " << it->second << endl;
}
}
}
출력결과
이름 입력 : (김모모)
김모모 , 30
이름 입력 : (박씨)
그런 사람은 없습니다.
이름 입력 : (q)
컨테이너 : 벡터, 데크, 리스트, 셋, 맵
서로 다른 자료구조
사용 문법 동일, 비슷
원활한 협업, 일반화 프로그래밍
#include<iostream>
#include<vector>
void main()
{
int arr[] = { 1,2,3,4,5 };
vector<int> vi(&arr[0], &arr[5]);
vector<int>::iterator it;
for (it = vi.begin(); it != vi.end(); it++)
{
cout << *it << endl;
}
}