I have following code which calculates unique values in vector
bool uniqueCompressVectorCompareFunction (unsigned int num1, unsigned int num2) {
return (num1 == num2);
}
// redirect input from stream to file.
std::ifstream inputFile("testinput.txt");
std::streambuf* pcurrRdBuf = std::cin.rdbuf();
std::cin.set_rdbuf(inputFile.rdbuf());
unsigned int uiNoOfFishes = 0;
std::cin >> uiNoOfFishes;
std::vector<unsigned int> vecOfLenOfFishes(uiNoOfFishes);
std::vector<unsigned int> vecOfTimeHeadOfFishes(uiNoOfFishes);
// get length of fishes
for(unsigned int uiIdx = 0; uiIdx < uiNoOfFishes; uiIdx++) {
std::cin >> vecOfLenOfFishes[uiIdx];
}
// get time head of fishes
for(unsigned int uiIdx = 0; uiIdx < uiNoOfFishes; uiIdx++) {
std::cin >> vecOfTimeHeadOfFishes[uiIdx];
}
std::cout << "Actual input length of fishes: " << std::endl;
for(unsigned int uiIdx = 0; uiIdx <vecOfLenOfFishes.size(); uiIdx++) {
std::cout << vecOfLenOfFishes[uiIdx] << " ";
}
std::cout << std::endl;
std::cout << "Actual input time head of fishes: " << std::endl;
for(unsigned int uiIdx = 0; uiIdx <vecOfTimeHeadOfFishes.size(); uiIdx++) {
std::cout << vecOfTimeHeadOfFishes[uiIdx] << " ";
}
std::cout << std::endl;
std::vector<unsigned int> vecUniqueInputValues;
// copy length of fishes.
unsigned int uiUniqueVecIdx = 0;
for(; uiUniqueVecIdx < uiNoOfFishes; uiUniqueVecIdx++) {
vecUniqueInputValues.push_back(vecOfLenOfFishes[uiUniqueVecIdx]);
}
// copy time head of fishes.
for(unsigned int uiIdx = 0; uiIdx < uiNoOfFishes; uiIdx++, uiUniqueVecIdx++) {
vecUniqueInputValues.push_back( vecOfTimeHeadOfFishes[uiIdx]);
}
// using predicate comparison:
std::unique (vecUniqueInputValues.begin(), vecUniqueInputValues.end(), uniqueCompressVectorCompareFunction);
std::cout << "compressInputData unique values sorted: " << std::endl;
for(unsigned int uiIdx = 0; uiIdx <vecUniqueInputValues.size(); uiIdx++) {
std::cout << vecUniqueInputValues[uiIdx] << " ";
}
std::cout << std::endl;
// contents in testinput.txt is shonw below
5
2 4 4 2 4
1 4 1 6 4
Output is shown as below
Actual input length of fishes:
2 4 4 2 4
Actual input time head of fishes:
1 4 1 6 4
compressInputData total values:
2 4 4 2 4 1 4 1 6 4
compressInputData unique values sorted:
2 4 2 4 1 4 1 6 4 4
I am expecting compress input unique values should be 1 2 4 6
What is bug in my code?