Как эффективно сравнить векторы с C ++?

Мне нужен совет по микрооптимизации в C ++ для функции сравнения векторов, она сравнивает два вектора на равенство и порядок элементов не имеет значения.

template <class T>
static bool compareVectors(const vector<T> &a, const vector<T> &b)
{
  int n = a.size();
  std::vector<bool> free(n, true);
  for (int i = 0; i < n; i++) {
    bool matchFound = false;
    for (int j = 0; j < n; j++) {
      if (free[j] && a[i] == b[j]) {
        matchFound = true;
        free[j] = false;
        break;
      }
    }
    if (!matchFound) return false;
  }
  return true;
}

Эта функция интенсивно используется, и я думаю о возможном способе ее оптимизации. Можете ли вы дать мне несколько предложений? Кстати я использую C ++ 11.

Спасибо

Ответы на вопрос(0)

Ваш ответ на вопрос