#include <iostream>
#include <vector>
using namespace std;
// vector는 동적으로 크기를 변경할 수 있는 배열
// typedef은 자료형에 대한 별칭을 지정
typedef vector<int> dataList;
typedef dataList::iterator itor;
int main()
{
// 포인터형으로 변수 선언
dataList* pDataList = new dataList;
itor it;
// 위와 동일
//vector<int>* pData = new vector<int>();
//vector<int>::iterator it;
// 벡터의 크기를 할당
// 10개의 원소를 저장할 배열
pDataList->reserve(10);
// 데이터 추가
pDataList->push_back(10);
pDataList->push_back(20);
pDataList->push_back(30);
it = pDataList->end();
// 리스트 위치 앞에 삽입하고 난 뒤 그 위치를 다시 반환
it = pDataList->insert(it, 1000);
it = pDataList->insert(it, 2000);
for (it = pDataList->begin(); it != pDataList->end(); ++it)
{
cout << (*it) << ",";
}
for (it = pDataList->begin(); it != pDataList->end(); ++it)
{
if ((*it) == 1000)
{
cout << "1000 삭제" << endl;
pDataList->erase(it);
break;
}
}
for (it = pDataList->begin(); it != pDataList->end(); ++it)
{
cout << (*it) << ",";
}
cout << endl;
cout << "전체 원소의 개수 : " << pDataList->size() << endl;
// at 함수로 접근
cout << pDataList->at(0) << endl;
cout << pDataList->at(1) << endl;
// 배열 형식으로 접근
cout << (*pDataList)[0] << endl;
cout << (*pDataList)[1] << endl;
pDataList->clear();
if (pDataList != nullptr)
{
delete pDataList;
pDataList = nullptr;
}
dataList test;
test.push_back(10);
test.push_back(20);
// 배열처럼 접근하는 것이 at 함수를 하용하는 것보다 빠름
cout << test[0] << endl;
cout << test[1] << endl;
test.clear();
}