【发布时间】:2020-06-24 10:05:37
【问题描述】:
我有一个像下面这样的向量。
struct Personel {
uint16_t personelId;
uint8_t age;
}
std::vector<Personel> Personels;
想象一下添加 1000 个元素,如下所示。
Personel personel1;
personel1.personelId = 1;
personel1.age = 26;
Personels.push_back(personel1);
.
.
.
Personel personel1000;
personel1000.personelId = 1000;
personel1000.age = 42;
Personels.push_back(personel1000);
从代码中可以理解,personelId 将是唯一的。
如果不使用 for 迭代每个元素并进行比较,如何根据personelId 获得 index。
以下代码不起作用:因为int 不是Personel
auto match = std::find(Personels.begin(), Personels.end(), 596);
int index = std::distance(Personels.begin(), match); //must return 596
【问题讨论】:
-
不幸的是,与重复的问题相比,这个问题在提供更接近minimal reproducible example 的内容方面更好。无论如何,既然你已经得到了答案,我认为我不会因为重复而受到伤害。也许有人会找到更好的