MrLevie Mesaj tarihi: Temmuz 23, 2008 Paylaş Mesaj tarihi: Temmuz 23, 2008 şimdi elimde yarattığım bir vector var "v" vectorü. 0'dan N sayısına kadar içi doldurulmuş. şimdi benim bu vectorü iki ayrı vectore ayırmam gerek.0'dan N/2'ye kadar ilk yarısı, N/2'den N'e kadar diğer yarısı. nası yapmak lazım bunu? aslında orijinali şöyle; Create 2 vectors (v1 and v2), put the first half of the shuffled vector (v) into v1 , and the second half into v2. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
MrLevie Mesaj tarihi: Temmuz 23, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 23, 2008 şöyle yaptım ama şimdi de sort kısmında patlıyor. cout kısmının sıralı olarak çıkıyor olması lazımdı. #include <vector> #include <iostream> #define N 20 using namespace std; int main(void) { vector<int> v; vector<int> v1(N); vector<int> v2(N); for(int i=0;i<N;i++) { v.push_back(i); } random_shuffle(v.begin(), v.end()); for(int a=0;a<N/2;a++) { v1[a]=v[a]; } for(int b=N/2;b<N;b++) { v2[b]=v[b]; } sort(v1.begin(),v1.end()); sort(v2.begin(),v2.end()); //sort correction for(int x=0;x<v1.size();x++) { cout<<v1[x]<<endl; } for(int y=0;y<v2.size();y++) { cout<<v2[y]<<endl; } system("pause"); return 0; } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Temmuz 23, 2008 Paylaş Mesaj tarihi: Temmuz 23, 2008 vector<int> v1(N); vector<int> v2(N); v1 ve v2 vektörlerini bu şekilde ürettiğinde ikisinin de size 20 olarak üretiliyor. for(int x=0;x<v1.size();x++) { cout<<v1[x]<<endl; } Bu döngüde de v1.size() dediğinde size 20 oluyor dolayısıyla. Orda bir sorun olabilir. vector<int> v2(N/2) şeklinde üretmeyi dene. Yazdıklarım yanlış olabilir. Acil bir işim olduğundan acele yazdım araştıramadan. Edit: Doldururken ikinci vektörün son yarısını dolduruyorsun, cout ile sadece ilk yarısını bastırıyorsun sanki? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Arthur_HellsFire Mesaj tarihi: Temmuz 23, 2008 Paylaş Mesaj tarihi: Temmuz 23, 2008 for(int b=N/2;b<N;b++) { v2[b]=v[b]; } bu kısım for(int b=N/2;b<N;b++) { v2[b-(N/2)]=v[b]; } olmalı mirage haklı Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Rahan Mesaj tarihi: Temmuz 23, 2008 Paylaş Mesaj tarihi: Temmuz 23, 2008 vector<int> v1; //v1 in içini doldur vector<int>::iterator orta; vector<int> v2(orta=(v1.begin()+(v1.size()/2)),v1.end()); v1.erase(orta,v1.end()); Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar