C++ একই টাইপের এলিমেন্টগুলোকে একটি নির্দিষ্ট ক্রমে সংরক্ষণ করার জন্য বিভিন্ন কন্টেইনার দেয়।
নির্দিষ্ট আকারের কন্টেইনার হিসেবে আছে std::array, আর আছে std::vector, যার আছে ডাইনামিক আকার পরিবর্তনের ক্ষমতা।
আপনি যখন একটি অ্যারে বা ভেক্টর ডিক্লেয়ার করেন, তখন কন্টেইনারটি কোন টাইপের এলিমেন্ট ধারণ করবে তা উল্লেখ করতে হয়। অ্যারের ক্ষেত্রে আকারও উল্লেখ করতে হয়। এই দুটি কন্টেইনার টাইপ কীভাবে ইনিশিয়ালাইজ করা হয়, তা দেখতে এই উদাহরণগুলো দেখুন:
#include <array>
#include <string>
// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times
ভেক্টর সাধারণত বেশি জায়গা নেয়, কারণ আরও বেড়ে ওঠার জন্য এটি মেমরি বরাদ্দ করে। এখানে আকার উল্লেখ করার দরকার নেই:
#include <vector>
// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1
দ্রষ্টব্য: টেমপ্লেট কনসেপ্টের পেছনের সঠিক কার্যপ্রণালী আপনি এখনই জানার দরকার নেই, সিলেবাস গাছের আরও নিচে এর নিজস্ব কনসেপ্ট থাকবে।
এলিমেন্ট অ্যাক্সেস করার জন্য ভেক্টর আর অ্যারে একই ফাংশন ব্যবহার করে।
কন্টেইনারের প্রথম আর শেষ এলিমেন্ট পেতে আপনি মেম্বার ফাংশন front আর back ব্যবহার করতে পারেন।
নির্দিষ্ট এলিমেন্ট অ্যাক্সেস করার জন্য আছে at আর [] অপারেটর।
countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"
দ্রষ্টব্য: আপনার কন্টেইনারের রেঞ্জের বাইরে কোনো পজিশন বেছে নিলে
[]আনডিফাইন্ড বিহেভিয়ারে পৌঁছে দিতে পারে।atফাংশনটি একটি এক্সেপশন উত্থাপন করবে, যা দীর্ঘমেয়াদে আপনার কাজ সহজ করে দিতে পারে।
যেহেতু vector কন্টেইনারের আকার নির্দিষ্ট নয়, তাই এলিমেন্ট যোগ করা বা মুছে ফেলা সম্ভব।
এই কাজের জন্য কমন দুটি ফাংশন হলো emplace_back আর pop_back।
std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team
মেম্বার ফাংশন empty দিয়ে কন্টেইনার খালি কি না তা যাচাই করতে পারেন।
এলিমেন্টের সংখ্যা জানতে চাইলে size ব্যবহার করতে পারেন।