Из приведенного ниже кода вы можете видеть, что векторный массив имеет одинаковое число дважды или больше, чем. То, что я хочу сделать, - это найти первые две одинаковые цифры по указателю * ptr
#include<iostream>
#include<iterator> // for iterators
#include<vector> // for vectors
using namespace std;
int main()
{
vector<int> ar = { 1,8,2, 2, 2, 5,7,7,7,7,8 };
// Declaring iterator to a vector
vector<int>::iterator ptr;
// Displaying vector elements using begin() and end()
cout << "The vector elements are : ";
for (ptr = ar.begin(); ptr < ar.end(); ptr++)
cout << *ptr << " ";
return 0;
}
Давайте предположим, что я хочу распечатать первые две позиции и элементы 7, разыменовав указатель * ptr. Должен ли я использовать условие if, например
int *array = ptr.data();
for( int i =0; i < ar.size(); i++) {
if( array[i] - array[i+1]+ ==0)
cout<<array[i]<<endl;
}
Но как я могу гарантировать, что оно не ищет только первые два одинаковых элемента из * ptr?
ОБНОВЛЕНИЕ
Устранение вопроса:
- Причина, по которой я всегда хочу узнать первую и вторую позицию одного и того же элемента из разыменования указателя, заключается в том, чтопозже я проведу некоторое исследование, и в этом исследовании мне дадут некоторое время, связанное с первой и второй позицией того же номера. Проблема, я хотел игнорировать те же самые элементы, которые все еще повторяются после второго раза, состоит в том, что я хочу игнорировать эти позиции элементов в моих вычислениях.
- Например, если вы распечатаете код, вы найдетеelement: ** Элементами вектора являются 1 8 2 2 2 5 7 7 7 7 8 **. В этом случае первые две позиции элемента 2, это [2] и [3], поэтому я бы хотел игнорировать позицию [4]. Еще одна вещь, которую стоит упомянуть, это то, что мне все равно, будет ли значение или последующим, или нет [я имею в виду, например, 828 или 888, я бы рассмотрел оба]. Например, число 8 находится в массиве местоположений [1], а в [10]. Я бы тоже это учел.