作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个结构和结构 vector :
struct S
{
int Efficiency;
int Number;
};
std::vector<S> Empl;
我尝试使用 copy_n 输入 Empl.Efficiency:
std::copy_n(std::istream_iterator<int>(std::cin), NumberOfEmpl, std::back_inserter(Empl.Efficiency));
但是总是出现vector不包含Efficiency的错误。如何输入 Empl.Efficiency?
还有如果我使用归并排序,如何按效率排序并保存对效率和数量?
void merge_sort(BidirIt first, BidirIt last, Compare cmp = Compare{})
{
const auto n = std::distance(first, last);
if (n > 1) {
const auto middle = std::next(first, n / 2);
merge_sort(first, middle, cmp);
merge_sort(middle, last, cmp);
std::inplace_merge(first, middle, last, cmp);
}
}
...
merge_sort(std::begin(Empl.Efficiency), std::end(Epml.Efficiency));
最佳答案
这行不通:
std::copy_n(std::istream_iterator<int>(std::cin), NumberOfEmpl, std::back_inserter(Empl.Efficiency));
因为 Empl 是一个 vector ,而 Efficiency 是该 vector 内部结构的成员。你不能在 C++ 中以这种方式“广播”。但是,您可以这样做:
std::copy_n(std::istream_iterator<int>(std::cin), NumberOfEmpl, std::back_inserter(Empl));
如果你实现:
std::ostream& operator >>(std::ostream& in, S& empl) {
return in >> empl.Efficiency;
}
也就是说,您为您的结构创建一个 istream 运算符,它读取效率并忽略数字。
关于c++ - 结构 vector (copy_n 和归并排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342755/
本文实例汇总了Java各种排序算法。分享给大家供大家参考,具体如下: 1. 冒泡排序: ?
1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 算法步
前言 平时用惯了高级语言高级工具高级算法,难免对一些基础算法感到生疏。但最基础的排序算法中实则蕴含着相当丰富的优化思维,熟练运用可起到举一反三之功效。 选择排序 选择排序几乎是
我是一名优秀的程序员,十分优秀!