PDA

View Full Version : مقداردهی اولیه آرایه 3 بعدی



HAIdle
دوشنبه 29 مرداد 1386, 13:24 عصر
با سلام
کد زیر را مشاهده کنید:


bool[,,] arr = new bool[1000, 1000, 3];
for (int i=0; i<1000; i++)
for (int j=0; j<1000; j++)
for (int k=0; k<3; k++)
arr[i, j, k] = false;

در این کد ما یک آرایه 3 بعدی bool را با false مقداردهی کرده ایم. این کار زمان زیادی می برد. آیا راه ساده تری که نیاز به حلقه های تو در تو نداشته باشد و زمان کمتری نیاز داشته باشد وجود ندارد؟

رها
دوشنبه 29 مرداد 1386, 15:03 عصر
همه ستونهای آرایه بعد از دستور new حاوی مقدار false خواهند بود و نیازی به تنظیم اونها نیست اما واسه تنظیم همه اونها به true باید از همین روش استفاده کنی.

PC2st
دوشنبه 29 مرداد 1386, 15:18 عصر
راه دیگه ای نیست، زمان زیادی نمیگیره... برای من 0.05 ثانیه طول کشید.

rasoul_ras
دوشنبه 29 مرداد 1386, 15:41 عصر
در این کد ما یک آرایه 3 بعدی bool را با false مقداردهی کرده ایم. این کار زمان زیادی می برد. آیا راه ساده تری که نیاز به حلقه های تو در تو نداشته باشد و زمان کمتری نیاز داشته باشد وجود ندارد؟

شما نیاز به این کار نداری چون زمانی که آرایه از Bool را تعریف می کنی تمام خانه های آرایه به صورت پیش فرض false هستند.
ولی اگر منظورت مقدار دهی کلی خانه های آرایه است سعی میکنم یه مثال برات بزارم

HAIdle
دوشنبه 29 مرداد 1386, 15:46 عصر
ممنون
اینکه می گید مقدار false داره را مطمئنید؟ یعنی این قانون توی سی شارپ وجود داره یا نه فقط شما با تجربه این را می گید؟

rasoul_ras
دوشنبه 29 مرداد 1386, 15:50 عصر
این موضوع ربطی به bool نداره مثلا وقتی شما آرایه ای از int تعریف می کنید تماما مقدار اولیه 0 می گیرند
یعنی برای value تایپ ها مقدار 0 می باشد ؟
البته false هم در bool همون 0 است

mohammadsale63
دوشنبه 29 مرداد 1386, 16:55 عصر
در مورد رفرنس تایپها چی ؟

PC2st
دوشنبه 29 مرداد 1386, 17:01 عصر
برای اونها هم همینطوره...

hdv212
دوشنبه 29 مرداد 1386, 17:37 عصر
اینکه می گید مقدار false داره را مطمئنید؟ یعنی این قانون توی سی شارپ وجود داره یا نه فقط شما با تجربه این را می گید؟
هم به صورت قانون هست و هم اینکه میتونی برای نمونه، محتوای آرایه تو به خروجی ببری و ببینی.

mehdi.mousavi
دوشنبه 29 مرداد 1386, 23:16 عصر
در مورد رفرنس تایپها چی ؟

در Reference-Type ها مقدار اولیه null هستش.