Volfied Mesaj tarihi: Temmuz 8, 2008 Mesaj tarihi: Temmuz 8, 2008 cok yannis olmus wiki deki olay, ben oole yazdigimda son eleman unsorted kaliyodu...
MrLevie Mesaj tarihi: Temmuz 8, 2008 Konuyu açan Mesaj tarihi: Temmuz 8, 2008 oha sağol nameless de hakkaten manyadı bu program:) random seçiyor sayıları:P hakkaten sort kısmı patladı herhalde
nameless Mesaj tarihi: Temmuz 8, 2008 Mesaj tarihi: Temmuz 8, 2008 çok hızlıca kodu düzenleyip yazdım. ikinci for döngüsünün hiçbir işlevi yok gibi edit:// ben random istiyorsun sanıyordum, arada yazılanları dikkatli okumamışım eheh. bir baştan okiyim konuyu
Volfied Mesaj tarihi: Temmuz 8, 2008 Mesaj tarihi: Temmuz 8, 2008 bu yuzden odevlerin cozumlerinin asilmasina karsiyim CS de, kod calismicak hale gelmis, swap ikinci for loopdan sonra olmali ki en minimum sey bulunsun once
nameless Mesaj tarihi: Temmuz 8, 2008 Mesaj tarihi: Temmuz 8, 2008 evet doğru söylüyosun volfied. biraz daha bakiyim, beynim akacak kod yazmaktan artık ama çok eğlenceli adsfxzcv
MrLevie Mesaj tarihi: Temmuz 8, 2008 Konuyu açan Mesaj tarihi: Temmuz 8, 2008 holi şit yes! ikincii döngünün sonuna alınca oldu! offf çok sağolun çocuklar yaaa oldu hakkaten oldu eyoooo
nameless Mesaj tarihi: Temmuz 8, 2008 Mesaj tarihi: Temmuz 8, 2008 yalnız dikkat et; maxsize olayı o pseudocode'da yanlış yazılmış. döngülerde maxsize-x değil maxsize olmalı (benim fikrim böyle ehe)
MrLevie Mesaj tarihi: Temmuz 8, 2008 Konuyu açan Mesaj tarihi: Temmuz 8, 2008 hocaya mail attım bakar herhalde yarına. sorun varmıymış yarına söylerim ben:)
Rahan Mesaj tarihi: Temmuz 9, 2008 Mesaj tarihi: Temmuz 9, 2008 en başta hatalı bişiler gördüm uykulu uykulu yazıyorum vector<int> vect(10); diye initialize ederseniz push_back yapmayın, çünkü içeriye 10 tane default element atmış oluyor. vector<int> vec(); vec.reserve(10); dedikten sora push_back le yardırın. yani şöyle; vector<int> x,y,z(100); x.reserve(100); y.resize(100); cout << x.size() << " " << y.size() << " " << z.size(); ün çıktısı 0 100 100 y ve z nin içi default int le dolu (vc++ debug için 0xcccccc olur herhal..) bi de böyle deli gibi insert yapıyorsanız deque kullanın. vector insert inin worst case time complexitysi O(n) deque nun O(1) aradaki postları okumadım önceden söylendiyse sori.
Mirage Mesaj tarihi: Temmuz 9, 2008 Mesaj tarihi: Temmuz 9, 2008 Ben ve Volfied push_back fikrini söylemiştik. İkimiz de default constructor kullanmışız. vector<int> n; şeklinde. Burda bir sorun yok yani. İkimiz de reserve kullanmamışız. Ben push_back gerektiğinde vektör kapasitesini dinamik olarak arttırır diye düşünmüştüm. Öyle değil mi yoksa optimizasyon için mi kullanıyorsun reserve'ü? (Önceden istediğim kapasiteyi vereyim de zırt pırt arttırmasın dinamik olarak diye)
Rahan Mesaj tarihi: Temmuz 9, 2008 Mesaj tarihi: Temmuz 9, 2008 evet reserve tamamen optimizasyon amaçlı. herkeş kullanmalı. vec.reserve(N) minimum N elemanı reallocate+copy yapmadan push_back etmeye yetecek kadar yer ayırıyor. ama size ı 0 kalıyor.
aquila Mesaj tarihi: Temmuz 10, 2008 Mesaj tarihi: Temmuz 10, 2008 push_back zaten vectorun sizeini arttirmiyo mu ekledikce?
Mirage Mesaj tarihi: Temmuz 10, 2008 Mesaj tarihi: Temmuz 10, 2008 push_back size'ı her seferinde 1 arttırıyor. Size vektör içinde kaç eleman olduğunu belirtiyor. Biz kapasiteden bahsediyorduk. Her vektörün size dışında bir de kapasitesi var. Kapasite vektörün bellekte kaç elemanlık yer ayırdığını belirtiyor. push_back bu kapasiteyi gerektiği zaman dinamik olarak arttırıyor. 100000 kere push_back yaptığın zaman bellek ayrılan yer yetmediği için defalarca dinamik olarak kapasitenin artması gerekecek. Bu yüzden, eğer ilk baştan vektörün 100000 elemanlı olacağını biliyorsan, kapasiteyi dinamik olarak arttırmanın anlamı yok. İlk baştan reserve ile kapasiteyi belirleyip bellekte 100000 elemanlık yer ayırıyorsun. Böylece gereksiz bellek operasyonlarından kurtulmuş oluyorsun. Optimizasyon amaçlı yani.
Öne çıkan mesajlar