C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++でユーザー定義クラスのunordered_mapを作成するにはどうすればよいですか?


このチュートリアルでは、C++でユーザー定義クラスの順序付けられていないマップを作成する方法を理解するためのプログラムについて説明します。

ユーザー定義のクラスから順序付けられていないマップを作成するには、3番目の引数であるクラスメソッドとしてハッシュ関数を渡します。

#include <bits/stdc++.h>
using namespace std;
//objects of class to be used as key values
struct Person {
   string first, last;
   Person(string f, string l){
      first = f;
      last = l;
   }
   bool operator==(const Person& p) const{
      return first == p.first && last == p.last;
   }
};
class MyHashFunction {
   public:
   //using sum of length as hash function
   size_t operator()(const Person& p) const{
      return p.first.length() + p.last.length();
   }
};
int main(){
   unordered_map<Person, int, MyHashFunction> um;
   Person p1("kartik", "kapoor");
   Person p2("Ram", "Singh");
   Person p3("Laxman", "Prasad");
   um[p1] = 100;
   um[p2] = 200;
   um[p3] = 100;
   for (auto e : um) {
      cout << "[" << e.first.first << ", "<< e.first.last<< "] = > " << e.second << '\n';
   }
   return 0;
}
出力
[Laxman, Prasad] = > 100
[kartik, kapoor] = > 100
[Ram, Singh] = > 200

  1. MongoDB v3でユーザーを作成するにはどうすればよいですか?

    MongoDB v3でユーザーを作成するには、createUser()メソッドを使用します。これにより、ユーザーを作成できます。作成中に、ユーザー、パスワード、およびロールも追加する必要があります。これらの役割は権限を割り当てます。構文は次のとおりです- use admin db.createUser(    {       user: “yourUserName",       pwd: "yourPassword",       roles

  2. C ++を使用してOpenCVでバイナリイメージを作成するにはどうすればよいですか?

    バイナリイメージは、白黒の2色を表す単なるデジタルイメージです。画像処理の観点から、バイナリ画像には、0と1の2つの可能な値を持つピクセルが含まれています。ピクセルの値が0の場合、それは純粋な黒色を表します。ピクセルの値が1の場合、それは純粋な白色を意味します。 グレースケール画像では、それぞれに256の異なる可能な値があります。しかし、バイナリイメージでは、可能な値は2つだけです。バイナリイメージには、さまざまなタイプのアプリケーションがあります。たとえば、形態学的変換には2値画像が必要であり、背景からのオブジェクト形状の抽出には2値画像が必要です。OpenCVを使用すると、画像を2値画像