刚才有人说能白嫖gpt4。试了一下,完美回答你的问题
首先,你需要知道std::set是一种关联容器,它能够储存唯一元素。元素是排序的,排序是通过使用其关键的比较函数进行的。
对于你的问题,如果你想要在std::set<Test>中找到特定的元素并且修改它,那从技术上来讲是无法做到的。因为set中的元素默认是const的,这样做是为了防止你修改元素值,从而导致set内元素的顺序破坏。当元素插入set时,set会根据元素值排序,如果你修改了元素,那么set的内部顺序就会被打乱,这是set不允许的。
你可以使用std::set的find函数来寻找特定的元素,但是你不能直接修改它。如果你真的需要修改某个元素,你需要先从set中删除它,然后修改它,最后再重新插入到set中。也可以考虑使用std::map,它允许你使用键值对的形式来存储数据,而且键(在你的案例中就是id)是唯一的。
【 在 WaveWave 的大作中提到: 】
: 见下列代码,虽然可以做到,但是感觉很丑陋,有更好的办法吗?
: [code=c]
: class Test
: ...................
--
FROM 61.48.130.*