gpt4 book ai didi

c++ - 相邻差异使用什么语法?

转载 作者:搜寻专家 更新时间:2023-10-31 01:40:29 25 4
gpt4 key购买 nike

我正在编写一个 C++ 程序来确定最低和最高交易价格,并通过向用户查询 15 个交易价格来确定这些价格之间的差异,通过使用相邻差异计算差异,打印出差异,计算通过使用排序记录最低和最高价格,并打印出这些值。

我熟悉sort的使用,但是我不熟悉adjacent_difference。我多次阅读我的教科书,搜索互联网并多次尝试更改我的代码,但我仍然遇到错误,我迷路了。

这是我的代码:

#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;

int main (void)
{
vector <int> p (15);
vector <int>::iterator it1;

cout<<"This program determines the daily differences, lowest and highest of 15 user-entered trading prices."<<endl;

for (int i=0; i<p.size(); i++)
{
cout<<"Please enter a trading price."<<endl;
cin>>p[i];
}

adjacent_difference(p.begin(), p.end(), p(it1));
for (int i=0; i<p.size(); i++)
{
cout<<"The difference in daily trading prices is: "<<adjacent_difference(it1)<<endl;
}

sort (p.begin(), p.end());
cout<<endl;
cout<<"The lowest trading price recorded was "<<p[0]<<"."<<endl;
cout<<"The highest trading price recorded was "<<p[14]<<"."<<endl;

return 0;

}

错误如下:

  • 28:47: 错误:对“(std::vector) (std::vector::iterator&)”的调用不匹配adjacent_difference(p.begin(), p.end(), p(it1));
  • 31:81:错误:没有用于调用“adjacent_difference(std::vector::iterator&)”的匹配函数 cout<<"每日交易价差为:"<

有人可以解释一下所涉及的语法吗?谢谢!

最佳答案

adjacent_difference 的参数都是迭代器。您正确提供的前两个:它们是输入范围的开始和结束。

第三个参数是一个输出迭代器,用于放置结果。例如:

#include <vector>
#include <numeric>

// Just some arbitrary inputs:
std::vector<int> inputs { 1, 2, 17, 15, 4, 19, 0, 2};
std::vector<int> results;

std::adjacent_difference(inputs.begin(), inputs.end(),
std::back_inserter(results));

如果您只是想打印出结果,您可以通过为第三个参数指定一个 ostream_iterator 来直接做到这一点:

std::adjacent_difference(inputs.begin(), inputs.end(),
std::ostream_iterator<int>(std::cout, "\t"));

但是请注意,您从 std::adjacent_difference 获得的第一个值是第一个输入。每个后续结果都是与先前结果的差异。

另请注意,您无需为了查找最高价和最低价而对输入进行完全排序。最明显的方法是使用 `std::minmax_element,像这样:

auto hilo = std::minmax_element(inputs.begin(), inputs.end());

std::cout << "Lowest price: " << *hilo.first << "\n"
<< "highest price: " << *hilo.second << "\n";

关于c++ - 相邻差异使用什么语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com