【发布时间】:2013-09-16 14:00:00
【问题描述】:
我有一个数据结构,例如:
struct Data
{
string firstname;
string lastname:
string age;
}
我已将每个结构放在一个向量 (VectorOfData) 中。是否可以遍历该向量并按年龄递减对向量中的每个结构进行排序?使用类似的东西:
for(std::vector<Data>::const_iterator it = VectorOfData.begin(); it != VectorOfData.end(); ++it)
{
//sorting by age here?
}
我假设它不会那么简单,因为 it 迭代器一次只访问向量中的一个结构?
我意识到我什至可以在将结构放入向量之前进行排序,但我的问题并不是那么简单。这只是我能解释的最简单的方法。任何建议将不胜感激,谢谢
【问题讨论】:
-
你可以使用
operator<和std::sortfrom<algorithm> -
“我猜它不会那么简单”?你有 STL,而且它更简单
-
@sinsedrix 谢谢。这真的很简单。跑了 3 小时睡眠,变得懒惰
-
附带说明:使用单个 for 循环对项目集合进行排序,理论上是不可能的,顺便说一句。因为,在一般情况下,使用基于比较的排序算法,您不可能优于 Θ(n*log(n))。
标签: c++