Burt.K

코코아를 좋아하는 프로그래머입니다 ;)

std::vector 를 C언어 배열로 변경하기

vector v 가 있을 때, v를 배열로 변경하는 방법은 아래와 같다.

//C++11 이전
const int* vp = &v[0];

//C++11 이후
cosnt int* vp = v.data();

예제로 확인해 보자.

$ vi printVector.cpp
#include <vector>
#include <iostream>

using namespace std;

void printArray(const int*, int);

int main() {

    vector<int> v = { 1, 2, 3, 4, 5 };



    int *vp = &v[0];

    printArray(vp, 5);

    int *vpp = v.data();
    printArray(vpp, 5);

    return 0;
}


void printArray(const int* array, int size) {
    cout << "vp : ";
    for(int i=0; i<size; i++) {
        cout << array[i] << ", ";
    }
    cout << endl;
}

컴파일 하고 실행해 보자.

$ g++ printArray.cpp -std=c++11 -o printArray
./printArray
1, 2, 3, 4, 5,
1, 2, 3, 4, 5,

 

← JNI 문자열 – 3/3
배열로 vector를 초기화하기 →