বাস্তবে std :: ভেক্টর বোঝানো হয় যখন প্রয়োজন হয় তখন সি ট্যাব হিসাবে ব্যবহৃত হয়। (সি ++ স্ট্যান্ডার্ড অনুরোধ করে যে ভেক্টর বাস্তবায়নের জন্য, যতদূর আমি জানি - উইকিপিডিয়ায় অ্যারের প্রতিস্থাপন ) উদাহরণস্বরূপ, আমার মতে এই ফলোভিং করা পুরোপুরি আইনী:
int main()
{
void foo(const char *);
sdt::vector<char> vec;
vec.push_back('h');
vec.push_back('e');
vec.push_back('l');
vec.push_back('l');
vec.push_back('o');
vec.push_back('/0');
foo(&vec[0]);
}
অবশ্যই, foo অবশ্যই প্যারামিটার হিসাবে প্রদত্ত ঠিকানাটি অনুলিপি করে কোথাও এটি সংরক্ষণ করবে না, বা আপনার প্রোগ্রামে নিশ্চিত হওয়া উচিত যে কোনও নতুন আইটেমকে ভিস্কে কখনও ঠেলে না দেওয়া বা তার ক্ষমতা পরিবর্তন করার অনুরোধ করা উচিত। বা ঝুঁকি বিভাজন ত্রুটি ...
সুতরাং আপনার উদাহরণে এটি বাড়ে
vector.insert(pos, &vec[first_index], &vec[last_index]);