私はクラスを持っている場合はstd :: findそれはどのように機能するのですか?演算子==
class Point
{
public:
Point() {}
Point(int _col, int _row) : row(_row), col(_col) {}
int row, col;
};
どのように私はSTDを使用することができます::ポイントは、ベクター内に既にあるかどうかを確認するために()を見つけますか?演算子==をオーバーロードする必要がありますか?
私は、オブジェクトがstd::vector
であるが、それらのどれもが、それはオブジェクトまたはのポインタを比較するかどうかについて説明していないかどうかを確認するために検索を使用することをお勧めスタックオーバーフロー上で見つけるこの
#include <algorithm>
if(std::find(v.begin(), v.end(), x) != v.end()) {
/* v contains x */
} else {
/* v does not contain x */
}
ほぼすべての答えをやろうとしていますオブジェクトの実際の値
[cppreference.com](http://en.cppreference.com/w/cpp/algorithm/find)は、通常、標準ライブラリの関数/クラスがどのように機能するかを調べるのに最適な場所です。まだ読んでいないのであれば、そのページを読むことをお勧めします(そして、何かがうまくいくかどうかという質問があれば、それをチェックするのが一般的です)。 – Cornstalks
@Cornstalks:比較のために演算子==を使用していますが、以下の例では配列内のプリミティブ型のintを使用しています。私はオブジェクトの例を見つけませんでした。 FYIはJavaのバックグラウンドから来ています。 http://www.cplusplus.com/reference/algorithm/find/ –
これは非常に危険なデフォルトコンストラクタです! –