Ben bu mümkün, int
türde başka vektör bir endeks olarak kullanmak için, strings
bir vektör bir öğenin dizinini almaya çalışıyorum?Dizeleri vektöründe belirli bir öğenin konumu, ints vektöründe bir dizin olarak kullanmak nasıl?
Örnek:
vector <string> Names;
vector <int> Numbers;
...
// condition to check whether the name exists or not
if((find(Names.begin(), Names.end(), old_name_)) != Names.end())
{ // if yes
cout <<"Enter the new name."<< endl;
cin >> name;
replace(Names.begin(), Names.end(), old_name_, name);
}
Şimdi Numbers
vektör belirli elemanı erişimde kullanmak, Names
vektörü içinde old_name
konumunu almak istiyorum. kullanılarak
Numbers[position] = 3 ; // or whatever value assigned here.
Denedim:
vector <string> :: const_iterator pos;
pos = (find(Names.begin(), Names.end(), old_name_))
Numbers[pos] = 3;
ama pos
dize türünde olduğu besbelli bu çalışmazsa Böylece diyebilirim!
http://stackoverflow.com/questions/1425349/how-do-: Eğer yineleyiciler ve işaretçiler her ikisi için çıkarma yerine
std::distance
kullanabilirsiniz C++ 11 ile başlayarakBen-bul-bir-öğe-in-stdvector –
std :: harita veya std :: unordered_map kontrol etmelisiniz. – Etherealone