Tam Sürümünü Görmek İçin : c++ vector yarım ltfen
slm arladaşlar c++ da vector içerisine kaydettigim verinin vector ün kacıncı elemanı oldugunu nasıl ögrenebilirim acaba :garip: aramadıgım kaynak kalmadı ya ben bir yerde gözden kacırdım yada bulamıyorum :aglama: şimdiden teşekkürler:hey:
acehreli
19/05/2008, 07:03
Bir dizi eleman icinde aramak icin normalde std::find islevi kullanilir:
#include <vector>
#include <iostream>
#include <algorithm>
typedef std::vector<int> Sayilar;
int main()
{
Sayilar sayilar;
sayilar.push_back(1);
sayilar.push_back(2);
sayilar.push_back(3);
Sayilar::iterator it = std::find(sayilar.begin(), sayilar.end(), 2);
if (it == sayilar.end()) {
std::cout << "Bulamadim\n";
} else {
std::cout << "Buldum: " << *it << '\n';
}
}
Ali
yarımın için öncelikle teşekkür ederim ama sanırım tam sorunumu anlatamadım
#include <vector>
#include <iostream>
#include <algorithm>
typedef std::vector<int> Sayilar;
int main()
{
Sayilar sayilar;
sayilar.push_back(1);
sayilar.push_back(2);
sayilar.push_back(3);
Sayilar::iterator it = std::find(sayilar.begin(), sayilar.end(), 2);
if (it == sayilar.end()) {
std::cout << "Bulamadim\n";
} else {
std::cout << "Buldum: " << *it << '\n';
}
}
yukarıdaki örnekte vector ün içerisinde bir deger arıyoruz ama benim istedigim misal 1 aradım sonuc olarak vector ün 0. konumundaki elemanı olarak almak istiyorum.. yada 3 aradım vector ün 3. elemanı olarak sonuc almak istiyorum .. bu konuda yardımcı olabilirmisiniz?
#include <vector>
#include <iostream>
#include <algorithm>
typedef std::vector<int> Sayilar;
int main()
{
Sayilar sayilar;
int index=0;
bool hata=true;
sayilar.push_back(1);
sayilar.push_back(2);
sayilar.push_back(3);
Sayilar::iterator it;
for(it=sayilar.begin();it!=sayilar.end();it++,inde x++)
{
if(*it=aranan)
{
hata=false;
break;
}
}
if(!hata)
std::cout<<"indeks:"<<index<<std::endl;
}
#include <vector>
#include <iostream>
#include <algorithm>
typedef std::vector<int> Sayilar;
int main()
{
Sayilar sayilar;
sayilar.push_back(1);
sayilar.push_back(2);
sayilar.push_back(3);
Sayilar::iterator it = std::find(sayilar.begin(), sayilar.end(), 2);
if (it != sayilar.end())
std::cout<<it-sayilar.begin()<<std::endl;
}
acehreli
19/05/2008, 09:05
std::distance'i da kullanabilirsin:
std::cout << "indeks: " << std::distance(sayilar.begin(), it) << '\n';
Ali
cok teşekkürler hgedek cok işime yarayacak sagolasın ...sanırım seninde gözünden kactı
if(*it=aranan) bu şekilde degilde if(*it==aranan) olarak calıştı ...ellerine saglık
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.