我正在寻找 C++ vector 中的元素,当我找到它时,我想以数字形式(整数、 float )获取找到的元素的索引。
我的天真尝试是这样的:
int x;
int index;
vector<int> myvector;
vector<int>::iterator it;
it = find(myvector.begin(), myvector.end(), x);
index = (int) * it;
此代码出错。你能告诉我如何将迭代器转换为 int(如果可能的话),或者你能告诉我如何以其他方式获取找到的元素的索引吗?谢谢。
最佳答案
你需要使用标准函数std::distance
index = std::distance( myvector.begin(), it );
if ( index < myvector.size() )
{
// do something with the vector element with that index
}
尽量使用 std::distance
,即使是随机访问迭代器。此功能在新旧 C++ 标准中均可用。
关于c++ - 如何在 C++ 中将 vector 迭代器转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26995725/