#vector #data
🔵وکتور(vector)
🔹تابع data
متد data یک اشاره گر به اولین عنصر وکتور به ما می دهد، دقت کنید یک اشاره گر نه یک iterator. ما با استفاده از همین اشاره گر می توانیم به بقیه ی عناصر هم دسترسی داشته باشیم. چگونه؟ با آفست عنصری, که ما می خواهیم به آن دسترسی داشته باشیم . حال آفست چیست؟ آفست به طور کلی به آدرس یک داده درحافظه نسبت به یک آدرس دیگر گویند. شما می دانید که ما هر آدرسی به کامپیوتر می دهیم نسبت به صفرمین خانه ی حافظه سنجیده می شود اما آفست می تواند نسبت به هر جایی از حافظه در نظر گرفته شود.
اگر براتون مبهم است به توضیحات زیر دقت کنید :
0.100
1.101
2.102
3.103
4.104
5.105
6.106
7.107
8.108
9.109
10.110
فرض کنید این 10 خانه ی اول حافظه است ما یک اشاره گر داریم به اسم p که به سومین سلول حافظه اشاره می کند فرض کنیم که نوع اشاره گر p از نوع char است، پس تمام آدرس هایی که با آفستی نسبت به p پیدا می شوند هم باید نوع char باشند. پس آفست سلول 6 نسبت به p می شود 3، چرا؟ چون سلول 6، 3 سلول از نوع char با سلول 3 فاصله دارد به عبارت ساده تر، برای پیدا کردن آفست یه سلول نسبت به یک سلول دیگر باید بیاییم حساب کنیم که چند سلول بین آنها فاصله است البته باید سلول ها را نسبت به نوع سلول مرجع بشماریم، مثلا اگر سلول مرجع به یک متغیر از نوع char اشاره می کند باید سلول ها را یکی یکی بشماریم، اگر سلول مرجع به یک متغیر از نوع int اشاره می کند باید سلول ها را 4 تا 4 تا بشماریم و برای بقیه ی نوع ها هم همین طور.
حالا در این مثالی که بالا زده شد اگر سلول 0 به یک متغیر از نوع int اشاره کند آفست سلول 8 نسبت به سلول 0 می شود 1. چرا؟چون بین 4 بایت اول تا 4 بایت سوم که اولین بایت است؛ بایت 8 می شود فقط یک 4 بایت وجود دارد حال متد data آدرس اولین خانه ی وکتور را به ما می دهد و ما نسبت به آن آدرس می توانیم به بقیه عناصر دسترسی داشته باشیم.
🔹مقادیر بازگشتی :
یک اشاره گر از نوع داده های ذخیره شده داخل وکتور به اولین عنصر داخل وکتور.
Output:
0x512c90=0
0x512c94=1
0x512c98=2
0x512c9c=3
0x512ca0=4
0x512ca4=5
با این برنامه می توانیم ثابت کنیم که عناصر ذخیره داخل وکتور در حافظه درست مثل آرایه پشت سر هم قرار گرفتند
🔰ترجمه شده از سایت
www.cplusplus.com
@Learncpp
🔵وکتور(vector)
🔹تابع data
value_type* data( ) noexcept;
const value_type* data( ) const noexcept;
متد data یک اشاره گر به اولین عنصر وکتور به ما می دهد، دقت کنید یک اشاره گر نه یک iterator. ما با استفاده از همین اشاره گر می توانیم به بقیه ی عناصر هم دسترسی داشته باشیم. چگونه؟ با آفست عنصری, که ما می خواهیم به آن دسترسی داشته باشیم . حال آفست چیست؟ آفست به طور کلی به آدرس یک داده درحافظه نسبت به یک آدرس دیگر گویند. شما می دانید که ما هر آدرسی به کامپیوتر می دهیم نسبت به صفرمین خانه ی حافظه سنجیده می شود اما آفست می تواند نسبت به هر جایی از حافظه در نظر گرفته شود.
اگر براتون مبهم است به توضیحات زیر دقت کنید :
0.100
1.101
2.102
3.103
4.104
5.105
6.106
7.107
8.108
9.109
10.110
فرض کنید این 10 خانه ی اول حافظه است ما یک اشاره گر داریم به اسم p که به سومین سلول حافظه اشاره می کند فرض کنیم که نوع اشاره گر p از نوع char است، پس تمام آدرس هایی که با آفستی نسبت به p پیدا می شوند هم باید نوع char باشند. پس آفست سلول 6 نسبت به p می شود 3، چرا؟ چون سلول 6، 3 سلول از نوع char با سلول 3 فاصله دارد به عبارت ساده تر، برای پیدا کردن آفست یه سلول نسبت به یک سلول دیگر باید بیاییم حساب کنیم که چند سلول بین آنها فاصله است البته باید سلول ها را نسبت به نوع سلول مرجع بشماریم، مثلا اگر سلول مرجع به یک متغیر از نوع char اشاره می کند باید سلول ها را یکی یکی بشماریم، اگر سلول مرجع به یک متغیر از نوع int اشاره می کند باید سلول ها را 4 تا 4 تا بشماریم و برای بقیه ی نوع ها هم همین طور.
حالا در این مثالی که بالا زده شد اگر سلول 0 به یک متغیر از نوع int اشاره کند آفست سلول 8 نسبت به سلول 0 می شود 1. چرا؟چون بین 4 بایت اول تا 4 بایت سوم که اولین بایت است؛ بایت 8 می شود فقط یک 4 بایت وجود دارد حال متد data آدرس اولین خانه ی وکتور را به ما می دهد و ما نسبت به آن آدرس می توانیم به بقیه عناصر دسترسی داشته باشیم.
🔹مقادیر بازگشتی :
یک اشاره گر از نوع داده های ذخیره شده داخل وکتور به اولین عنصر داخل وکتور.
#include <iostream>
#include <vector>
using namespace std;
int main( )
{vector<int> a;
for(inti=0;i<=10;i++)
a.push_back(i);
int *p=a.data( );
cout<<p<<"="<<*p<<endl;
cout<<p+1<<"="<<p[1]<<endl;
cout<<p+2<<"="<<p[2]<<endl;
cout<<p+3<<"="<<p[3]«endl;
cout<<p+4<<"="<<p[4]<<endl;
cout<<p+5<<"="<<*p+5<<endl;
return 0;
}
Output:
0x512c90=0
0x512c94=1
0x512c98=2
0x512c9c=3
0x512ca0=4
0x512ca4=5
با این برنامه می توانیم ثابت کنیم که عناصر ذخیره داخل وکتور در حافظه درست مثل آرایه پشت سر هم قرار گرفتند
🔰ترجمه شده از سایت
www.cplusplus.com
@Learncpp
#vector
📚فهرست آموزش کتابخانه vector(وکتورها)
♦️وکتورچیست
#vector
t.me/Learncpp/550
♦️توضیحات بیشتر درباره وکتور
t.me/Learncpp/551
#pop_back
t.me/Learncpp/552
#push_back
t.me/Learncpp/553
#insert
1. t.me/Learncpp/556
2. t.me/Learncpp/557
#erase
t.me/Learncpp/558
#capacity
t.me/Learncpp/559
#clear
t.me/Learncpp/560
#size
t.me/Learncpp/563
#reserve
t.me/Learncpp/563
#resize
t.me/Learncpp/567
#max_size
t.me/Learncpp/572
#at
t.me/Learncpp/573
#operator
t.me/Learncpp/576
#Empty
t.me/Learncpp/582
#iterator
t.me/Learncpp/584
#Begin
t.me/Learncpp/588
#cbegin
t.me/Learncpp/589
#Rbegin
t.me/Learncpp/590
#crbegin
t.me/Learncpp/591
#End
t.me/Learncpp/595
#cend
t.me/Learncpp/596
#Rend
t.me/Learncpp/597
#crend
t.me/Learncpp/612
#Back
t.me/Learncpp/601
#Emplace
t.me/Learncpp/606
#Emplace_back
t.me/Learncpp/607
#operator
t.me/Learncpp/611
#Front
t.me/Learncpp/613
#swap
1. t.me/Learncpp/616
2. t.me/Learncpp/617
#data
t.me/Learncpp/621
#shrink_to_fit
t.me/Learncpp/625
#vector::vector
1. t.me/Learncpp/632
2. t.me/Learncpp/633
3. t.me/Learncpp/634
#assing
t.me/Learncpp/641
#relation_operator
t.me/Learncpp/652
📝ترجمه کتابخانه از سایت رسمی برنامه نویسان ++C
www.cplusplus.com
🔸کمک به بچه های سرطانی
💝@tabligh_cpp
🔹آموزش تخصصی ++C
🛡@Learncpp
📚فهرست آموزش کتابخانه vector(وکتورها)
♦️وکتورچیست
#vector
t.me/Learncpp/550
♦️توضیحات بیشتر درباره وکتور
t.me/Learncpp/551
#pop_back
t.me/Learncpp/552
#push_back
t.me/Learncpp/553
#insert
1. t.me/Learncpp/556
2. t.me/Learncpp/557
#erase
t.me/Learncpp/558
#capacity
t.me/Learncpp/559
#clear
t.me/Learncpp/560
#size
t.me/Learncpp/563
#reserve
t.me/Learncpp/563
#resize
t.me/Learncpp/567
#max_size
t.me/Learncpp/572
#at
t.me/Learncpp/573
#operator
t.me/Learncpp/576
#Empty
t.me/Learncpp/582
#iterator
t.me/Learncpp/584
#Begin
t.me/Learncpp/588
#cbegin
t.me/Learncpp/589
#Rbegin
t.me/Learncpp/590
#crbegin
t.me/Learncpp/591
#End
t.me/Learncpp/595
#cend
t.me/Learncpp/596
#Rend
t.me/Learncpp/597
#crend
t.me/Learncpp/612
#Back
t.me/Learncpp/601
#Emplace
t.me/Learncpp/606
#Emplace_back
t.me/Learncpp/607
#operator
t.me/Learncpp/611
#Front
t.me/Learncpp/613
#swap
1. t.me/Learncpp/616
2. t.me/Learncpp/617
#data
t.me/Learncpp/621
#shrink_to_fit
t.me/Learncpp/625
#vector::vector
1. t.me/Learncpp/632
2. t.me/Learncpp/633
3. t.me/Learncpp/634
#assing
t.me/Learncpp/641
#relation_operator
t.me/Learncpp/652
📝ترجمه کتابخانه از سایت رسمی برنامه نویسان ++C
www.cplusplus.com
🔸کمک به بچه های سرطانی
💝@tabligh_cpp
🔹آموزش تخصصی ++C
🛡@Learncpp
Telegram
Learning ©➕➕
#vector
🔵 وکتور(vector) چیست
خوب اول ما باید بدونیم وکتور یا همون بردار چیه تا بتونیم تشخیص بدیم که کجا باید ازش استفاده کنیم شما تا حالا حتما از آرایه ها استفاده کردید و حتما بزرگ ترین مشکل آرایه ها رو هم میدونید و اون مشکل همون ثابت بودن طول آرایه است،…
🔵 وکتور(vector) چیست
خوب اول ما باید بدونیم وکتور یا همون بردار چیه تا بتونیم تشخیص بدیم که کجا باید ازش استفاده کنیم شما تا حالا حتما از آرایه ها استفاده کردید و حتما بزرگ ترین مشکل آرایه ها رو هم میدونید و اون مشکل همون ثابت بودن طول آرایه است،…