0

我有一个结构向量如下

struct myStruct{
    size_t aID;
    int bID;
    double tobeUpdated;
};

std::vector<myStruct> myVec;

如何在 C++11 中以有效的方式查找和更新myVec满足的成员?aID == someId && bID == otherID

4

2 回答 2

2

假设只有一个要更新。

// what to search for
size_t aID = 5;
int bID = 7;

find_if(vec.begin(), vec.end(), [aID, bID](const myStruct& obj) { return obj.aID == aID && obj.bID == bID; });
于 2013-08-08T16:21:27.770 回答
1

如果你想让它更高效,这真的取决于你对structand 数组的使用。如果可能根据您的使用方式,那么我会将它们存储在一个std::map代替。这将允许基于 ID 或可能的 ID 组合轻松查找。但是,如果它实际上并没有明显减慢您的系统速度,那么我会说放弃优化并使用该测试迭代每个索引。

于 2013-08-08T16:13:41.427 回答