Avatar ·

Como converter std::vector em um array comum (C-style array) em C++?

Olá a todos! Estou escrevendo um programa em C++ e me deparei com um problema. Eu tenho um std::vector, que estou preenchendo com dados, mas uma das bibliotecas que estou usando exige como entrada um array C comum (int*). Como posso obter do vetor um ponteiro bruto para seus dados internos para passá-lo para a função?

Aqui está um exemplo do meu código:

#include <iostream>
#include <vector>

void process_array(int* arr, size_t size) {
    for (size_t i = 0; i < size; ++i) {
        std::cout << arr[i] << " ";
    }
}

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    
    // Como obter int* a partir de vec?
    // process_array(vec, vec.size()); // Erro!
    
    return 0;
}

Ouvi dizer que existe um método <