C++ 포인터 - std-vector

진경천·2023년 9월 13일
0

C++

목록 보기
21/90

std-vector

vector< 자료형 > 변수명 의 형식으로 선언하며
자동으로 메모리가 할당되는 동적 배열이다.
stack의 구조와 비슷한 구조를 띄고 있다.

#include <iostream>
#include <array>
#include <vector>

using namespace std;

int main() {
	int s = 10;
	vector<int> vec0(s);
	// 동적으로 크기 할당 가능

	for (int i = 0; i < vec0.size(); i++)
		cout << vec0[i] << endl;
	// 초기화를 하지 않아도 0으로 초기화된다
	cout << endl;

	vector<int> vec1(s, 1);
	vec1.resize(5, 2);
	// 크기와를 바꾸고 초기화할 값을 입력할 수 있음
	for (int num : vec1)
		cout << num << endl;
	cout << endl;

	vector<int> vec2;
	for (int i = 0; i < s; i++) {
		vec2.push_back(i);
		// vec2는 크기를 할당하지 않았지만 push_back()을 통해 마지막 원소에 값을 넣음
		cout << vec2[i] << endl;
		cout << vec2.size() << endl;
		cout << vec2.data() << endl;
		// vector가 할당하는 주소값을 나타내며 할당하는 크기가 바뀔수록 주소값이 달라지는걸 볼 수 있음
	}

	vec2.pop_back();
	cout << vec2.size() << endl;

	vec2.reserve(1000);
	// 할당하는 주소를 미리 지정해준다.

	cout << vec2.front() << endl;
	// vector의 첫번째 요소 반환
	cout << vec2.back() << endl;
	// vector의 마지막 요소 반환

	return 0;
}
  • 코드 실행 결과

    0
    0
    0
    0
    0
    0
    0
    0
    0
    0

    1
    1
    1
    1
    1

    0
    1
    000002227F1C6850
    1
    2
    000002227F1D7460
    2
    3
    000002227F1D77D0
    3
    4
    000002227F1D72D0
    4
    5
    000002227F1D28E0
    5
    6
    000002227F1D28E0
    6
    7
    000002227F1D2520
    7
    8
    000002227F1D2520
    8
    9
    000002227F1D2520
    9
    10
    000002227F1DCCD0
    9
    0
    8

이외에도 std::array의 비교연산, vector.swap()또한 사용할 수 있다.

profile
어중이떠중이

0개의 댓글