프로그래밍 언어 공부/C++

Vector

CalebHong 2022. 7. 21. 17:54
#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();
}

'프로그래밍 언어 공부 > C++' 카테고리의 다른 글

Multimap  (0) 2022.07.21
Queue  (0) 2022.07.21
Map  (0) 2022.07.21