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

🔹تابع Operator[ ]
reference operator[ ] (size_type n);
const_reference operator[ ] (size_type n) const;

عملگر [ ] مثل اندیس داخل آرایه ها عمل می کند و همین عملگر باعث شباهت وکتور و آرایه هاست. ما به دو روش می توانیم از اندیس برای دسترسی به عناصر وکتور استفاده کنیم اولی که همان روش معمولی آرایه هاست :
Vec[4]
و روش دیگر هم استفاده از متد operator[ ]( ) است :
Vec.operator[ ](4)
این دو روش هیچ تفاوتی ندارند.
عملکرد این عملگر با متد at کاملا مشابه است ولی اگر ما یک مقداری که در محدوده ی وکتور نیست (مثلا منفی است، سه یا یک مقداری بیشتر از تعداد عناصر داخل وکتور ) به متد at بدهیم این متد یک خطای out_of_range را ست می کند ولی عملگر [ ] مقدار 0 را به ما می دهد.

🔹پارامتر ها:

🔻مفهوم N:
موقعیت یا اندیس عنصر داخل وکتور که البته از 0 شروع می شود نه از 1

#include <iostream>

#include <vector>

using namespace std;


int main( )

{

vector<int>a;

for(int i=0;i<=10;i++)

a.push_back(i);

for(int j=0;j<=10;j++)

cout<<a[j]<<"\t";

cout<<endl;

a[2]=34;

cout<<a[2]<<endl;

return 0;

}


Output:
0 1 2 3 4 5 6 7 8 9 10
34
همان طور که می بینید با این عملگر می توانیم هم مقداری را بخوانیم هم مقداری را تغییر بدهیم، کاملا شبیه آرایه ها.

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

🔹تابع = operator
🔹copy (1)

vector& operator= (const vector& x);


🔹move (2)

vector& operator=(vector&& x);


🔹initializer list (3)

vector& operator=(initializer_list<value_type> il);


چرا سی پلاس باید عملگر + رو برای وکتور آورلود کند؟ دلیل آن این است که ما وقتی می خواهیم از عملگر + برای انتصاب وکتور ها استفاده کنیم باید چیزی بیشتر از یک متغیر کپی شود در واقع ما می خواهیم یک کلاس را در یک کلاس دیگر کپی کنیم ولی نه هر گونه کپی کردنی باید آن کپی طوری باشد که می خواهیم

🔹عملگر + سه آورلود دارد

🔻1)مفهوم Copy :
این متد کل محتویات یک وکتور را کپی می کند در یک وکتور دیگر یعنی در واقع کل محتویات وکتور x را کپی می کند در یک وکتور جدید

🔻2)مفهوم Move :
این متد کل محتویات یک وکتور را منتقل می کند به یک وکتور دیگر

🔻3)مفهوم Initializer list :
این هم یک نوع داده ای که مشخص نیست را می ریزد در یک وکتور

🔹پارامتر ها :

🔻مفهوم X :
همان وکتوری که قرار است کپی یا منتقل شود

🔻مفهوم Li :
این هم همان لیستی است که نوع آن مشخص نیست
#include <iostream>

#include <vector>

using namespace std;


int main ( )

{

vector<int> foo(3,0);

vector<int> bar(5,0);


bar=foo;

foo=vector<int>();


cout<<"Size of foo: "<<int(foo.size( ))<<'\n';

cout<<"Size of bar"<<int(bar.size( )) <<'\n';

return 0;

}


Output:
Size of foo: 0
Size of bar: 3

متد size( ) تعداد عناصر داخل وکتور را بر می گرداند

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

@Learncpp