我正在寻找一个容器,包含像Employee这样的对象(信息:名称,工资,电话......),这些对象可以按名称排序(a..z),其他时间按工资排序例.最好的方法是什么?我想到了地图,但后来我只定义了一把钥匙就会欣赏每一个想法(请不要太高级!)
---更新---
我实际上不需要总是维护2个STL容器,我通常会有1个(比如雇员按姓氏排序),根据要求,我不介意制作一个新的STL容器,并再次将所有元素推送到它,这次只按工资排序,所以我可以按该订单打印.是否可以使用名称排序创建map1,使用薪水排序创建map2?如果是这样的话会喜欢进一步的解释\例子来定义这两个地图.我的c ++知识很少(我得到的第一个任务)
sti*_*ijn 17
使用此版本的std :: sort
template <class RandomAccessIterator, class Compare>
void sort( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
Run Code Online (Sandbox Code Playgroud)
你可以对你想要的任何领域进行排序,提供你自己的比较器.例如
struct CompareSalary
{
bool operator () ( const Employee& a, const Employee& b ) const
{
return a.salary < b.salary;
}
}
Run Code Online (Sandbox Code Playgroud)
此外,由于std :: sort与提供随机访问迭代器的所有容器兼容,std :: vector也可以.
提供功能std::sort:
bool byName(Employee left, Employee right) {
return left.name < right.name;
}
std::vector<Employee> employees;
std::sort(employees.begin(), employees.end(), byName);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
441 次 |
| 最近记录: |