Avatar ·

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

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

\n\n

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

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

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