আমি জানি যে এটির সীমানা যাচাইয়ের at()
চেয়ে ধীর গতির []
, যা সি ++ ভেক্টর এ / [] অপারেটরের গতি বা :: এসটিডি :: ভেক্টর :: এ () বনাম অপারেটর [] << অবাক করা ফলাফলের মতো একই প্রশ্নেও আলোচনা করা হয়েছে !! 5 থেকে 10 গুণ ধীর / দ্রুত! । at()
পদ্ধতিটি কী ভাল তা আমি ঠিক বুঝতে পারি না ।
আমার মতো যদি এইর মতো সরল ভেক্টর থাকে: std::vector<int> v(10);
এবং আমি যখন সূচক রাখি তখন পরিস্থিতির at()
পরিবর্তে ব্যবহার করে এর উপাদানগুলি অ্যাক্সেস করার সিদ্ধান্ত []
নিয়েছি i
এবং আমি নিশ্চিত নই যে এটির ভেক্টর সীমানায় রয়েছে কিনা, এটি আমাকে চেষ্টা করে এটি আবদ্ধ করতে বাধ্য করে ব্লক :
try
{
v.at(i) = 2;
}
catch (std::out_of_range& oor)
{
...
}
যদিও আমি size()
নিজেই সূচকটি ব্যবহার করে এবং পরীক্ষা করে একই আচরণটি করতে সক্ষম হয়েছি যা আমার পক্ষে সহজ এবং বেশ সুবিধাজনক বলে মনে হচ্ছে:
if (i < v.size())
v[i] = 2;
সুতরাং আমার প্রশ্নটি হল: ভেক্টর :: ওভার ভেক্টর :: অপারেটর []
ব্যবহার করার সুবিধা কী ?
আমার কখন ভেক্টর ব্যবহার করা উচিত :: ভেক্টরের পরিবর্তে :: আকার + ভেক্টর :: অপারেটর [] ?