Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

[C++] Vectorü bölme


MrLevie

Öne çıkan mesajlar

ş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ş

şö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ş


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ş

×
×
  • Yeni Oluştur...