خرید بک لینک

Vote count: 0

I need to check if two given sequences are equal, but if I find a mismatched element I need to check in a 3rd sequence (same size of the other two) if that can be ignored.

I know that I can write a simple algorithm to solve that, but I would like to know if there is any C++-like style to solving this, using a std algorithm.

Example:

A = [1, 2, 3, 4, 5, 6]
B = [1, 2, 3, A, 5, 6]
M = [true, true, true, false, true, true]
N = [true, true, true, true, true, true]

bool equal1 = the_equal(begin_A, end_A, begin_B, begin_M); // Should return true, even if '4' is different from 'A' since in the same position of the found mismatch, in the M sequence, we have a false that indicates that position should be ignored.

bool equal2 = the_equal(begin_A, end_A, begin_B, begin_N); // Should return false, since '4' is different from 'A' and we have a true in sequence N for that position.

That could be solved by something like:

template<I1, I2, I3> // iterators
bool the_equal(I1 first1, I1 last1, I2 first2, I3 first3) {
  while (first1 != last1) {
    if (first1 != first2 && first3 != false)
      return false;
    ++first1; ++first2; ++first3;
  }

  return true;
}

asked 29 secs ago

برچسب: c check if file exists,c check if directory exists,c check if string is number,c check if file is open,c check if string is empty,c check if pointer is null,c check if bit is set,c check if input is integer,c check if string contains substring,c check if string contains, نویسنده: استخدام کار تاريخ: جمعه 5 شهريور 1395 ساعت: 0:13

صفحه بندی