1

假设我有 1 个名称向量和另一个用于电话号码的向量。首先,用户将输入姓名(未排序,意味着它们没有从 a 到 z 组织),然后,用户将输入相应的电话号码。

在填写完两个向量之后,程序然后在名称向量(向量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 的结构。线性遍历并记录名称信息。再过一遍,记录下手机号信息。然后排序。

如果您不想创建类,可以使用pair对象。

vector<pair<string,int> > nameAndNumber;

编辑:修复了一个错误,谢谢 smocking

于 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 回答