Avatar ·

كيفية تحويل std::vector إلى مصفوفة عادية (C-style array) في C++؟

مرحباً بالجميع! أكتب برنامجاً بلغة C++ وواجهت مشكلة. لدي std::vector أقوم بتعبئته بالبيانات، لكن إحدى المكتبات التي أستخدمها تتطلب إدخال مصفوفة C عادية (int*). كيف يمكنني الحصول من المتجه على مؤشر خام (raw pointer) لبياناته الداخلية لتمريره إلى الدالة؟

إليك مثال على الكود الخاص بي:

#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};
    
    // كيف أحصل على int* من vec؟
    // process_array(vec, vec.size()); // خطأ!
    
    return 0;
}

سمعت أن هناك طريقة <