আমি একটি বাহ্যিক গ্রন্থাগার ব্যবহার করছি যা এক পর্যায়ে আমাকে পূর্ণসংখ্যার অ্যারের এবং একটি আকারকে একটি কাঁচা পয়েন্টার দেয়।
এখন আমি std::vector
এই মানগুলিতে কাঁচা পয়েন্টার ব্যবহারের পরিবর্তে অ্যাক্সেস এবং সংশোধন করতে ব্যবহার করতে চাই ।
এখানে একটি নিখুঁত উদাহরণ যা পয়েন্টটি ব্যাখ্যা করে:
size_t size = 0;
int * data = get_data_from_library(size); // raw data from library {5,3,2,1,4}, size gets filled in
std::vector<int> v = ????; // pseudo vector to be used to access the raw data
std::sort(v.begin(), v.end()); // sort raw data in place
for (int i = 0; i < 5; i++)
{
std::cout << data[i] << "\n"; // display sorted raw data
}
প্রত্যাশিত আউটপুট:
1
2
3
4
5
কারণটি হ'ল আমাকে <algorithm>
সেই ডেটাতে (বাছাইকরণ, সোয়াপিং উপাদানগুলি ইত্যাদি) থেকে অ্যালগরিদম প্রয়োগ করতে হবে ।
অন্য দিকে যে ভেক্টর আকার পরিবর্তন পরিবর্তন করা হবে না, তাই push_back
, erase
, insert
কাজ যে ভেক্টর প্রয়োজন নেই।
আমি গ্রন্থাগার থেকে প্রাপ্ত তথ্যের উপর ভিত্তি করে একটি ভেক্টর তৈরি করতে পারি, সেই ভেক্টরটি সংশোধন করতে এবং ডেটাটি লাইব্রেরিতে অনুলিপি করে ব্যবহার করতে পারি, তবে এটি দুটি সম্পূর্ণ অনুলিপি হতে হবে যা ডেটা সেটটি সত্যই বড় হতে পারে বলে আমি এড়াতে চাই।
std::vector
কাজ করে না ।
sort(arrayPointer, arrayPointer + elementCount);
।
std::vector_view
, তাই না?