২-৩ঃ ভেক্টর মডিফাইয়ার ফাংশন -১

এই পেইজে আমরা একটি ভেক্টর কে কীভাবে বিভিন্ন ফানশনের সাহায্যে মডিফাই করা যায় তা দেখবো।

ভেক্টর কে মডিফাই করার বিভিন্ন ফাংশনঃ 1. ভেক্টর এসাইনঃ আমরা চাইলে একটি ভেক্টর এ আরেকটি ভেক্টর এসাইন করতে পারি। যদি ঐ দুইটি ভেক্টরের সাইজ সমান হয় , সেক্ষেত্রে এই এসাইনের টাইম কমপ্লেক্সিটি হবে O(1) , অন্যথায় এর টাইম কমপ্লেক্সিটি হবে O(N)

vector<int>v = {1,2,3,4} ;

vector<int> v1 ;

v1 = v ; // v1 এর মধ্যে v er সব ভ্যালু এসাইন হয়ে যাবে। 
  1. push_back() -> এই ফাংশনের মাধ্যমে আমরা ভেক্টরের শেষের দিকে একটি ভ্যালু insert করতে পারি । একটি ভ্যালু insert করার পর vector টির সাইজ ১ বেড়ে যাবে। এই ফাংশনের টাইম কমপ্লেক্সিটি হলো O(1).

Drawing
vector<int>v = {1,2,3,4} ;

v.push_back(6) ; // ডান সাইডে ভ্যালু ৬ insert করবে

for(int i =0 ;i<v.size() ;i++) {

cout << v[i] << endl ;

} // 1 2 3 4 5 6
  1. pop_back() -> এই ফাংশনের সাহায্যে আমরা ভেক্টরের সর্ব ডানের ভ্যালুটি ডিলিট করতে পারি। ভ্যালু কমে যাওয়ার কারণে ভেক্টরের সাইজ ও ১ কমে যাবে। এই ফাংশনের টাইম কমপ্লেক্সিটি O(1).

Drawing
vector<int>v = {5,6,7,8,9} ;

v.pop_back() ; // ডান সাইডে ভ্যালু 9 delete হয়ে যাবে

for(int i =0 ;i<v.size() ;i++) {

cout << v[i] << endl ;

} // 5 6 7 8 
  1. v.insert() : এই ফাংশনের সাহায্যে আমরা ভেক্টরের যেকোন index এ ভ্যালু এড করতে পারবো। এই ফাংশনের টাইম কমপ্লেক্সিটি হলো O(N+K) যেখানে N হলো ভেক্টরের সাইজ এবং K হলো আমরা কয়টি ভ্যালু insert করবো তার সংখ্যা। ধরেন আমরা চাচ্ছি আমাদের ভেক্টরের k তম index ভ্যালু ১০ এড করতে। এই ক্ষেত্রে আমরা লিখবো , তার index এবং তার ভ্যালু। এরপর আমি যদি চাই , একটি index থেকে শুরু করে আরেকটি ভেক্টর এখানে insert করতে এই ক্ষেত্রে আমরা ফাংশনে ভেক্টরের index , এবং আরেকটি ভেক্টর এর শুরু এবং শেষের পয়েন্টার টা দিয়ে দিবো। নিচে ভেক্টরে কোন একটি ইন্ডেক্সের পজিশন কীভাবে বের করা যায় তা চিত্রে দেখানো হলো

Drawing

vector<int>v = {5,6,7,8,9} ;

v.insert(v.begin()+2 , 10 ) // ভেক্টর টির ২ নাম্বার index ১০ insert হয়ে যাবে। 

for(int  i =0 ;i< v.size() ;i++){
cout << v[i] << " " ; 
} 
// 5 6 10 7 8 9 

vector<int> v2 = {100,1000} ;

v.insert( v.begin()+3, v2.begin(),v2.end()) // এর মাধ্যমে ভেক্টর v এর ৩ নাম্বার পজিশন থেকে v2 insert হয়ে যাবে

// v হবে 5 6 10 100 1000 7 8 9
  1. v.erase() -> এই ফাংশনের সাহায্যে আমরা ভেক্টরের কোন একটি ইন্ডেক্সের ভ্যালু ডিলিট করতে পারি। এর জন্য এই ফাংশনে ঐ ইন্ডেক্সের পয়েন্টার টি পাস করে দিতে হবে। আমরা যদি চাই একটি রেঞ্জের সকল ভ্যালু গুলা ডিলিট করতে তবে erase ফাংশনের মধ্যে যে ভ্যালু থেকে শুরু করতে চাই তবে এই ক্ষেত্রে ঐ রেঞ্জের শুরুর ইন্ডেক্সের পয়েন্টার এবং ঐ রেঞ্জের শেষের ইন্ডেক্সের পয়েন্টার পাস করতে হবে।

vector<int>v = {5,6,7,8,9} ;

v.erase(v.begin()+2) // ভেক্টর টির ২ নাম্বার index ১০ insert হয়ে যাবে। 

for(int  i =0 ;i< v.size() ;i++){
cout << v[i] << " " ; 
} 
// 5 6 8 9 

vector<int>v2 = {1,2,3,4,5} ;

v2.erase(v.begin()+1, v.begin()+3) // ১ নাম্বার ইন্ডেক্স থেকে ৩ নাম্বার ইন্ডেক্সের ভ্যালু গুলা ডিলিট করে দিবে
// v2 হবে  1 5 

Last updated