본문 바로가기

카테고리 없음

15.벡터(vector)

 .h

1. 벡터선언

#pragma once
#include<iostream>
#include<vector> //1.

using namespace std;

class Test01
{
private:
	
	vector<int> _vNum;	//2.
	vector<int>::iterator _vInum; //3.
    
public:
    
	Test01();
	~Test01();
}

0. STL 컨테이너 중 벡터는 배열 기반의 컨테이너
1. 벡터 선언
2. int 타입의 벡터 변수 선언
3. iterator == 반복자

 

.cpp

2. .push_back()

#include "Test01.h"

Test01::Test01()
{   
	_vNum.push_back(1); //4.
	_vNum.push_back(2); //5.
    
	for(int i = 0; i < 5; i++)
	{
		_vum.push_back(i*10); //6.
	}
}

1.push_back();
2.벡터 컨테이너에 값을 넣을때 사용.
3.푸시백을 할 경우 용량을 1:2로 잡아뒀는데 이젠 가성비가 좋은 1:1.5를 사용한다함

4.1번 컨테이너에 1의 값을 저장.
5.2번 컨테이너에 2의 값을 저장.

6. 반복문으로 3~7번 컨테이너까지 0,10,20,30,40 값을 저장 

7. 배열과 비슷하지만 배열과는 다르게 주소를 입력할 필요없이 순서대로 들어간다.

3. .pop_back();

	_vNum.pop_back();
    
    
    1. .pop_back();
    2. 벡터 컨테이너의 값을 뒤에서부터 순차적으로 지움.
    
    3.이 경우 {1,2,0,10,20,30,40} 중 제일 뒤에 있는 40을 지움

4. .insert() , .begin() , end()

	_vNum.insert(_vNum.begin() + 6, 777);
	_vNum.insert(_vNum.end() - 2, 123);

1. .insert(컨테이너 번호,넣을 값)
2. 지정된 위치에 지정한 값을 삽입함.

3. .begin() : 벡터의 시작점.
4. .end() 	: 벡터의 끝.

5. 이와 같은 경우엔 7번 위치에 777값을 넣고
6. 8개가 됬으니 9 - 2 그러니까 7의 위치에 123의 값을 넣음
7. 그렇다. 그 주소의 값을 지우고 넣는게 아니라 다음 컨테이너로 강제이주시킨다!

8. {1,2,0,10,20,30,123,777,40} 이 된다.

5. .erase()

	vNum.erase(_vNum.begin()+3);
    
    
1. .erase(컨테이너 번호);
2. 지정된 컨테이너의 값을 지워버림.

3. 이 경우 4번째 컨테이너가 지워져서 {1,2,0,20,30,123,777,40} 가 됨

6. .clear()

	_vNum.clear();
    

1. .clear();
2. 벡터를 치워버림.

7. size()

	_vNum.size();


	for(int i = 0; i = _vNum.size();i++)
	{
		cout << _vNum[i] << endl;
	}


1. .size();
2. 벡터의 사이즈를 알려주는 함수
3. for문에 돌려서 벡터의 값을 출력가능!

이렇게 나와버림