Learning ©➕➕
4.52K subscribers
81 photos
2 videos
38 files
182 links
ک
Download Telegram
#vector #insert
🔵 وکتور(vector)

🔹تابع Insert(قسمت اول)
single:

element iterator insert (const_iterator position,const value_type& val);


fill:

iterator insert (const_iterator position,size_type n,const value_type& val);


range:

template <class InputIterator>

iterator insert (const_iterator position,InputIterator first,InputIterator last);


move:

iterator insert (const_iterator position,value_type&& val);


initializer list:

iterator insert (const_iterator position,initializer_list<value_type> il);


متد insert میتونه یه یا چند عنصر را داخل یک جای مختلف از وکتور اضافه بکند, مثلا میتواند 5 تا عنصر جدید بعد از دهمین عنصر داخل وکتور اضافه کند, تازه میتوانیم یک بازه ی جدید به یک جای خاص از وکتورمان اضافه کنیم و یک مقدار پیشفرض داخلشون کپی کنیم.
توجه کنید که ما با اضافه کردن یک یا چند داده هیچ فضایی را برای آنها دوباره از سیستم نمیگریم، چون قبلا یک بازه ای از حافظه رو برای وکتور از سیستم گرفتیم (برای اطلاعات بیشتر رجوع شود به capacity). فقط در صورتی دوباره فضا میگریم که ظرفیت موجود برای وکتور (capacity) کم باشد و داده ها داخلش جا نگیرند.

🔹مفهوم Single element:
با این اورلود میتونیم فقط یه عنصر جدید به موقعیت position وکتور اضافه کنیم

🔹مفهوم Fill:
با این اورلود میتوانیم یک بازه ی جدید به طول n از موقعیت position با مقدار پیش فرض val اضافه کنیم

🔹مفهوم Range:
با این میتوانیم یک دسته از عناصر جدید مثل یک آرایه یا یک وکتور دیگه را به موقعیت position اضافه کنیم

🔹مفهوم Move:
با این میتوانیم مقدار یک متغییر را اضافه کنیم

🔹مفهوم Initializer list:
با این میتوانیم یک دسته از داده هایی با نوع نا معلوم را به وکتور اضافه کرد

پارامتر ها :
🔹پارامتر Position:
موقعیتی از وکتور هست که می خواهیم داده های جدید به آن موقعیت اضافه شوند. دقت کنید که هیچ داده ای قبل از position قرار نمیگیرد و همه ی داده از position به بعد داخل وکتور قرار میگیرند

🔹پارامتر Val:
همان مقداری هست که می خواهیم به وکتور اضافه شود یا به عنوان مقدار پیشفرض تو بازه ی جدید جا بگیرد

🔹پارامتر n:
طول بازه ی جدیدی هست که ما می خواهیم به وکتورمان اضافه کنیم

🔹پارامتر First,last:
این دوتا میتوانند یا iterator هایی به اول و آخر یک وکتور دیگه باشند یا اشارگر هایی به اول و آخر یک آرایه. کل داده هایی که بین این دوتا اشارگر قرار میگیرند به وکتور اضافه میشوند

🔹پارامتر Li:
همان لیست با نوع نامعلوم هست

🔹مقادیر بازگشتی:
یک iterator به اولین عنصری که به وکتور اضافه شده. اگر یکی باشد به همان یکی اشاره میکند

1.#include <iostream>

2.#include <vector>


3.int main ()

4.{

5.std::vector<int> myvector(3,100);

6.std::vector<int>::iterator it;

7.it=myvector.begin();

8.it=myvector.insert(it,200);

9.myvector.insert(it,2,300);

10.//"it" no longer valid, get a new one:

11.it=myvector.begin();

12.std::vector<int> anothervector(2,400);

13.myvector.insert(it+2,anothervector.begin(),anothervector.end());

14.int myarray []={501,502,503};

15.myvector.insert(myvector.begin(),myarray,myarray+3);

16.std::cout<<"myvector contains:";

17.for(it=myvector.begin();it<myvector.end();it++)

18.std::cout<<' '<<*it;

19.std::cout<<'\n';

20.return 0;

21.}


22.Output:
23.myvector contains: 501 502 503 300 300 400 400 200 100 100 100


خط 5:
5.std::vector<int> myvector(3,100);
تعریف یک وکتور با طول 3 و مقدار پیشفرض 100, پس تا الان :
100 100 100

خط 8:
8.it=myvector.insert(it,200);
دادن یک iterator و مقدار 200 به متد. چون این iterator به اول وکتور اشاره میکند پس این مقدار به اول وکتور اضافه میشود, نتیجه :
200 100 100 100

خط 9:
9.myvector.insert(it,2,300);
دادن یک iterator ، یک طول و یک مقدار پیشفرض, دقت کنید که it هم اکنون به اول همان وکتور اولی اشاره میکند (یعنی اولین 100) چرا ؟ چون ما آن را مقدار دهی کردیم ولی بعد از اینکه محتویات وکتور را تغییر دادیم دوباره آن را مقدار دهی نکردیم, اما چون در خط 8 it را مساوی با مقدار بازگشتی متد insert گذاشتیم پس دوباره به اول همین وکتور اشاره میکند چرا ؟ چون متد insert یک اشاره گر به اولین داده ای که وارد وکتور میشود برمیگرداند که اینجا از قضا اولین داده ی وارد شده همان اولین داده ی داخل وکتورهست, پس :
300 300 200 100 100 100

خط 12:
12.std::vector<int> anothervector(2,400);
تعریف یک وکتور دیگر به طول 2 و مقدار 400

🔰ترجمه شده از سایت www.cplusplus.com
@Learncpp
#vector #insert
🔵 وکتور(vector)

🔹تابع Insert(ادامه قسمت اول)

خط 13:
13.myvector.insert(it+2,anothervector.begin(),anothervector.end());
دادن یک iterator که به دومین موقعیت وکتور اشاره میکند و دوتا iterator که به اول و آخر یک وکتور دیگر اشاره میکند, پس :
300 300 400 400 200 100 100 100
خط 14:
14.int myarray []={501,502,503};
تعریف یک آرایه و دادن مقادیری به آن

خط 15:
15.myvector.insert(myvector.begin(),myarray,myarray+3);
دادن یک iterator به اولین عنصر وکتور (متد begin() ) و دادن دو اشاره گر که یکی به اول و یکی به آخر آرایه اشاره میکند, در نتیجه:
501 502 503 300 300 400 200 100 100 100

🔰ترجمه شده از سایت www.cplusplus.com
@Learncpp