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 requer 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?

\n\n

Aqui está um exemplo do meu código:

\n\n
#include <iostream>\n#include <vector>\n\nvoid process_array(int* arr, size_t size) {\n    for (size_t i = 0; i < size; ++i) {\n        std::cout << arr[i] << " ";\n    }\n}\n\nint main() {\n    std::vector<int> vec = {1, 2, 3, 4, 5};\n    \n    // Como obter int* a partir de vec?\n    // process_array(vec, vec.size()); // Erro!\n    \n    return 0;\n}
\n\n

Ouvi dizer que existe um método <