Avatar ·

Comment convertir std::vector en tableau C (C-style array) en C++ ?

Bonjour à tous ! J'écris un programme en C++ et j'ai rencontré un problème. J'ai un std::vector<int> que je remplis avec des données, mais l'une des bibliothèques que j'utilise nécessite en entrée un tableau C classique (int*). Comment puis-je obtenir à partir du vecteur un pointeur brut vers ses données internes pour le passer à une fonction ?

Voici un exemple de mon code :

#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};
    
    // Comment obtenir int* à partir de vec ?
    // process_array(vec, vec.size()); // Erreur !
    
    return 0;
}

J'ai entendu dire qu'il existe une méthode <