ベクトル内の要素のインデックスを見つけるにはどうすればよいですか? ベクトルのスナップショットに次が含まれていると仮定します。
10 12 15 23 43
今私は数字を挿入したい。
1- 15 を挿入 => 2 を返す (位置)
2- 50 を挿入 => push_back() => 5 を返す (位置)
これは私が書いたものですが、イテレータを整数に変換できません。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> v;
int insertVector(int a);
int main()
{
int a;
cout << "enter number: ";
cin >> a;
int pos = insertVector(a);
cout << pos; // update
return 0;
}
int insertVector(int a)
{
vector<int>::iterator it;
it = find(v.begin(), v.end(), a);
if (it == v.end()) {
v.push_back(a);
return v.size();
}
return it; // error
}
アップデート:
に変更return it;
するreturn *it;
と、出力が間違っています。このような:
enter number: 10
1
enter number: 20
2
enter number: 25
3
enter number: 35
4
enter number: 45
5
enter number: 5
6
enter number: 25
25 // wrong