【发布时间】:2011-11-23 07:54:31
【问题描述】:
我有一个 C++ 结构向量,我想单独修改每个项目。我发现SomeStruct info = myVector[i] 给了我一个项目的副本,所以如果我修改它,什么都不会改变。所以现在我正在像这样重置项目:myVector[i] = info。有没有更有效的方法来做到这一点?不涉及复制操作的?
这是我当前的代码:
struct CharacterInfo {
QChar character;
int occurrences;
double frequency;
};
std::vector<CharacterInfo> characterInfos;
// Some code to populate the vector
for (unsigned i = 0; i < characterInfos.size(); i++) {
CharacterInfo info = characterInfos[i];
info.frequency = (double)info.occurrences / (double)totalOccurrences;
characterInfos[i] = info; // how to avoid this?
}
【问题讨论】: