Если вы посмотрите на код ниже, вы увидите, что он найдет количество вхождений элементов в одном векторе ar
. Это означает, что он находит векторное местоположение того же числа, когда он появляется снова (учитывается, только если это произошло во второй раз).
Поскольку мне интересно найти элемент в векторе time
, с соответствующим первым и вторым векторным положением появления элементов в векторе ar
, я сделал это ниже:
#include<iostream>
#include<vector>
#include<map>
using namespace std;
int main() {
double time1;
double time2;
vector<int> ar{ 1, 8, 6, 6, 2, 5, 7, 7, 7, 7, 8 };
vector<int> time{ 100, 800, 600, 600, 502, 405, 700, 700, 700, 711, 118 };
map<int, vector<size_t> > occurrences;
for (size_t i = 0; i < ar.size(); ++i) {
auto iter = occurrences.find(ar[i]);
if (iter == occurrences.end()) {
occurrences[ar[i]].push_back(i);
}
else { //print the distance between the current and the previous occurrence
cout << "distance with first occurrence of number " << ar[i] << " is " << (i - iter->second[0])<< "\n";
//time1= ar2[iter->second[0]];
time2 = time[i];
}
//cout << "first occurance time" <<time1<<endl;
cout << "second occurance element"<<ar[i]<<"the second occurance time is"<<time2<<"endl"<<endl;
}
return 0;
}
Единственная проблема в приведенном выше коде состоит в том, что он находит элементы вектора из time
, хотя элементы в одной и той же позиции в векторе ar
не повторялись. Что это означает, что я хочу рассмотреть возможность распечатывания векторного элемента time
, когда получаю повторяющиеся элементы из вектора ar
. И, следовательно, я выведу ту же самую векторную позицию ar
из вектора time
.
Например, первый элемент 1
в векторе ar
не был повторен, поэтому яхочу игнорировать элементы 100
из вектора time
. Кроме того, элемент ar[7]
равен 7, который появился в векторе больше, чем во второй раз, поэтому я также не хочу печатать ту же самую векторную позицию из time
.
OUTPUT:
Из вывода я пометил красным цветом, который я хочу игнорировать. Причина в том, что на них выводятся элементы (1, 8 и т. Д.) Из вектора ar
, которые больше не появляются. Я также хочу игнорировать положение вектора, когда они появляются более чем в два раза.