保持向量的顺序

时间:2012-05-02 03:25:14

标签: c++ vector relationship

假设我有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

如您所见,矢量电话尚未调整。怎么能调整这个?感谢

2 个答案:

答案 0 :(得分:5)

创建一个结构,该结构包含名称的字符串和电话号码的字符串/ int。线性浏览并记录名称信息。再次浏览并记录手机#信息。然后排序。

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

vector<pair<string,int> > nameAndNumber;

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

答案 1 :(得分:1)

  

矢量电话尚未调整。我们怎样才能调整这个?

通过在数据结构中组合实体“name”和“telephone”,然后使用其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进行排序。