bir string[] i nasıl boşaltabiliriz döngü ile silme dışında alternatif var mı?
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
February 02, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
bir string[] i nasıl boşaltabiliriz döngü ile silme dışında alternatif var mı? -- |
February 02, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to huseyin | Sonuçta bu bir dizi ve hatırladığım kadarıyla bunun iki yolu var... İlki aşağıdaki kodda gizlediğim satır ve diğeri de altındaki:
Yukarıda dizinin boyutu ne olursa olsun bir döngüye sokulmadan ve doğrudan işaretçi arimetiği ile dizi küçültülür. Muhtemelen .init de dilimlemek de aynı işi yapıyor olmalı. Ayrıca dilersen herhangi bir dizgeyi (string) aynı şekilde temizleyebilirsin:
-- |
February 02, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | Aşağıdaki şekilde dizinin uzunluk değerini de değiştirebilirsiniz.
Hem bu sayede diziye yeni eleman eklemediğiniz sürece eski elemanlara erişebilirsiniz. Zekeriya -- |
February 02, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Uzun vadeli güvenilmez evet ama bazı durumlarda güvenmekten zarar gelmez :) Kendi sistemimde şu şekilde kullandım.
Şeklinde pop ve shift işlemlerinde önce değeri diziden attım daha sonra ise return ettim. Ek bir değişken tanımlamadım. Ama değeri bir değişkene atıp daha sonra dilimleme yapıp return olarak da tanımlanan değişken gönderilirse daha yavaş oluyor. Pop için çok ek birşey gerekmezken shift için adresi alıp 1 çıkartıp adrese erişmek çok daha hızlı. Zekeriya -- |
February 02, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer |
February 03, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı (acehreli): >Bir de şu var:
|
February 02, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Alıntı (zekeriyadurmus): >Hem bu sayede diziye yeni eleman eklemediğiniz sürece eski elemanlara erişebilirsiniz. Ona güvenilebilmesi için elemanlara başka referanslar olması gerekir. Ama .ptr'nin değişmediği konusunda haklısın:
'.ptr: 7FAE3C57AF88, .capacity: 5 http://ddili.org/ders/d/dilimler.html O sayfada capacity'nin geçtiği başlığın altında şöyle demişim: Alıntı: >Değeri 0 ise bu dilim en uzun dilim değil demektir. Bu durumda yeni bir eleman eklendiğinde dilimin bütün elemanları başka yere kopyalanırlar ve paylaşım sonlanır. Yani, eski elemanlara bu dilim yoluyla erişilemez çünkü .length arttırıldığında başka yere taşınacaktır. Ali -- |
February 02, 2013 string[] nan değeri var mı ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) |
İşine yaradığına sevindim ama altını çizmek gerek: Teknik açıdan tanımsız davranıştır çünkü ilk elemandan önce eleman yok. Tabii dilimlerin nasıl gerçekleştirildiklerini bildiğimiz için işe yarayacağından eminiz. :) Ve nasıl olsa yalnızca dönüş değeri olarak kullanılıyor. Yani artık var olmadığını bildiğimiz elemana bir referans da kullanmıyoruz. Öyle bir tehlike de yok... Ali -- |