Beispiel #1
0
//Compile using g++ -std=c++14 ./test.cpp -o ./test
int main(int argc, char* argv[])
{
  std::vector<int64_t> arr1={-9,-3,0,1,2,3,5,7,18};
  std::vector<int64_t> arr2={-8,-3,1,3,4,6,7,8,9,10,11,18};
  std::vector<int64_t> res={-3,1,3,7,18};
  std::vector<int64_t> dup;
  std::vector<int64_t> dup2;

  //Print inputs
  print(arr1);
  print(arr2);
  print(res);

  //Solution 1
  findDup(arr1,arr2,dup);
  print(dup);
  checkSolution(dup,res);

  //Solution 2
  findDup2(arr1,arr2,dup2);
  print(dup2);
  checkSolution(dup2,res);

  return EXIT_SUCCESS;
}
int findDupTest() {
  int errs = 0;
  ColValPair ja(0, 0);
  std::vector<ColValPair> v;
  std::vector<ColValPair>::iterator dup = findDup(ja, v);
  if (dup != v.end()) ++errs;

  v.push_back(ColValPair(1, 0));
  dup = findDup(ja, v);
  if (dup != v.end()) ++errs;

  v.push_back(ColValPair(3, 0));
  dup = findDup(ja, v);
  if (dup != v.end()) ++errs;

  dup = findDup(ColValPair(1, 0), v);
  if (dup == v.end()) ++errs;
  if (std::distance(v.begin(), dup) != 0) errs += 1;

  return errs;
}