C++ 分離チェイン法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
パズドラ
記事: 1
登録日時: 7年前

C++ 分離チェイン法

#1

投稿記事 by パズドラ » 7年前

下記のようにしてコンパイルは通ったのですが、同じ値を入れても成功がcoutされます。ハッシュ関数道理の連結リストに値がちゃんと入っているのか知りたいです。
メンバは以下の3つです。 list<int>* table; int table_size; int ndata;
ハッシュ関数はkey % table_sizeです。

コード:

bool HashSeparate::Insert( int key ){
  list<int> l = table[key % table_size];
    	list<int>::iterator itr = find(l.begin(), l.end(), key);
	if(itr != l.end()){
	  cout << "失敗" << endl;
 return false;
	}
  else{
    l.push_front(key);
    ndata++;
    cout << "成功" << endl;
    return true;
  }

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C++ 分離チェイン法

#2

投稿記事 by みけCAT » 7年前

lに値を追加しても、コピー元のtableの要素には反映されません。
型名に&を追加して参照を使うといいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

返信

“C言語何でも質問掲示板” へ戻る