1

名前のベクトルが1つと、電話番号のベクトルがもう1つあるとします。最初に、ユーザーは名前を入力し(ソートされていない、つまりaからzまで編成されていない)、次に対応する電話番号を入力します。

両方のベクトルを入力した後、プログラムは名前vector(vector 1)でソートメカニズムを実行します。問題はベクトル2です(ベクトル1にマップするための採用メカニズムがないため)。

例:

vector name  |  vector telephone
f               232132
a               34242342
b               997345

the result will be

vector name  |  vector telephone
a               232132
b               34242342
f               997345

ご覧のとおり、ベクトル電話は調整されていません。どうすればこれを調整できますか?ありがとう

4

2 に答える 2

5

名前の文字列と電話番号の文字列/intを保持する構造体を作成します。それを直線的に調べて、名前情報を記録します。もう一度確認して、電話番号の情報を記録します。次に、並べ替えます。

クラスを作成したくない場合は、ペアオブジェクトを使用できます。

vector<pair<string,int> > nameAndNumber;

編集:バグを修正しました、スモッキングに感謝します

于 2012-05-02T03:27:06.887 に答える
1

ベクトル電話は調整されていません。どうすればこれを調整できますか?

データ構造内で「名前」と「電話」の両方のエンティティを組み合わせて、そのを使用しvectorます。

struct NameNumber {
  std::string t_Name;
  unsigned long t_Number;

  bool operator < (const NameNumber&) const;  // use 't_Name' inside
};
std::vector<NameNumber> v;

ソリューションを完全にするために、名前に従ってoperator <ソートするものについて説明しました。vector

于 2012-05-02T03:28:45.573 に答える