最終更新日時(UTC):
が更新

履歴 編集

function template
<vector>

std::operator!=

namespace std {
  template <class T, class Allocator>
  bool operator!=(const vector<T, Allocator>& x,
                  const vector<T, Allocator>& y);           // (1) C++03

  template <class T, class Allocator>
  constexpr bool operator!=(const vector<T, Allocator>& x,
                            const vector<T, Allocator>& y); // (1) C++20
}

概要

vectorの非等値比較を行う。

要件

Toperator==で比較可能であること。

戻り値

!(x == y)

計算量

線形時間。ただし、xyのサイズが異なる場合は定数時間。

基本的な使い方 (C++11)

#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> v1 = {1, 2, 3};
  std::vector<int> v2 = {1, 2, 3};
  std::vector<int> v3 = {1, 2, 3, 4};

  std::cout << std::boolalpha;

  // 要素数と要素の値が等しい
  std::cout << (v1 != v2) << std::endl;

  // 要素の値は(左辺の要素数分まで)等しいが要素数が異なる
  std::cout << (v1 != v3) << std::endl;
}

出力

false
true

基本的な使い方 (C++20 constexpr)

#include <cassert>
#include <vector>

constexpr bool f()
{
  std::vector<int> v1 = {1, 2, 3};
  std::vector<int> v2 = {1, 2, 3};
  std::vector<int> v3 = {1, 2, 3, 4};

  // 要素の値は(左辺の要素数分まで)等しいが要素数が異なる
  assert(v1 != v3);

  // 要素数と要素の値が等しい
  assert(!(v1 != v2));

  return true;
}

int main()
{
  static_assert(f());
}

参照