В вашем конкретном случае возвращение std::pair
с итератором и целым числом, помечающим выбранный аргумент, может помочь.На самом деле вы можете вернуть только целое число, и тогда вызывающая сторона сможет использовать соответствующий итератор - это масштабирует его до вектора / массива итераторов.
Необходимость сделать это может быть немногоплохой дизайн.Если вам нужно что-то сделать с этим конкретным итератором, просто верните сам итератор по ссылке и сделайте это:
vector<int>::iterator& minn(vector<int>::iterator& A, vector<int>::iterator& B, vector<int>::iterator& C) {
...
//Assuming you found the minimal position in each iterator, just return the correct reference
if (*A < *B)
if (*A < *C) return A;
if (*B < *C) return B;
return C;
//inside caller
...
vector<int>::iterator& minit = vector<int>::iterator(A,B,C);
minit++;
сработает, без явного написания в коде вектора, над которым вы работаете....
(например, ++minit
) без явного написания в вашем коде итератора этого.На самом деле, вы можете захотеть сделать это внутри minn
.