C++ 如何使用成对向量的数字库函数?
我试图在成对向量(C++ 如何使用成对向量的数字库函数?,c++,vector,stl,numeric,std-pair,C++,Vector,Stl,Numeric,Std Pair,我试图在成对向量(vector)的每个条目的第二个元素上使用numeric库中的函数nexture\u difference)。我怎么做 更新:这是我到目前为止的代码(显然是错误的xD): 如果我理解你,这就是你想要的: vector<pair<double, double>> initvalues; for (int i = 0; i < 10; ++i) { initvalues.push_back(make_pair(i, 2 + i)); } ve
vector
)的每个条目的第二个元素上使用numeric
库中的函数nexture\u difference
)。我怎么做
更新:这是我到目前为止的代码(显然是错误的xD):
如果我理解你,这就是你想要的:
vector<pair<double, double>> initvalues;
for (int i = 0; i < 10; ++i) {
initvalues.push_back(make_pair(i, 2 + i));
}
vector<pair<double, double>> result;
result.reserve(initvalues.size());
adjacent_difference(initvalues.begin(), initvalues.end(),
std::back_inserter(result),
[](const auto& l, const auto& r) {
return std::pair<double, double>{l.first, l.second - r.second};
});
那好多了,谢谢。投票重新开放。次要的一点是,关于“…结构(174.386,10)作为示例…”的注释似乎不适用,因为您现在正在示例中创建值
(0,2),(1,3),…
。
stack.C: In function ‘int main()’:
stack.C:16:35: error: ‘class std::vector<std::pair<double, double> >’ has no member named ‘second’
16 | adjacent_difference((initvalues.second).begin(), (initvalues.second).end(), (result.second).begin());
| ^~~~~~
stack.C:16:64: error: ‘class std::vector<std::pair<double, double> >’ has no member named ‘second’
16 | adjacent_difference((initvalues.second).begin(), (initvalues.second).end(), (result.second).begin());
| ^~~~~~
stack.C:16:87: error: ‘class std::vector<std::pair<double, double> >’ has no member named ‘second’
16 | nitvalues.second).begin(), (initvalues.second).end(), (result.second).begin());
| ^~~~~~
vector<pair<double, double>> initvalues;
for (int i = 0; i < 10; ++i) {
initvalues.push_back(make_pair(i, 2 + i));
}
vector<pair<double, double>> result;
result.reserve(initvalues.size());
adjacent_difference(initvalues.begin(), initvalues.end(),
std::back_inserter(result),
[](const auto& l, const auto& r) {
return std::pair<double, double>{l.first, l.second - r.second};
});
initValues = {0, 2} {1, 3} {2, 4} {3, 5} {4, 6} {5, 7} {6, 8} {7, 9} {8, 10} {9, 11}
result = {0, 2} {1, 1} {2, 1} {3, 1} {4, 1} {5, 1} {6, 1} {7, 1} {8, 1} {9, 1}