I am looking for an element in a C++ vector, and when I find it, I want to get found element's index in a numerical form(integer, float).
My naive attempt is this :
int x; int index; vector<int> myvector; vector<int>::iterator it; it = find(myvector.begin(), myvector.end(), x); index = (int) * it;
This code is giving error. Can you tell me how I can convert iterator to int(if possible), or can you tell me how I can get found element's index in other way? Thanks.
You need to use standard function std::distance
index = std::distance( myvector.begin(), it ); if ( index < myvector.size() ) { // do something with the vector element with that index }
Try always to use std::distance
even with random access iterators. This function is available in the new and old C++ Standards.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With