矢量引用 C++
vector referencing C++
不确定我是否针对我实际要问的问题发布了正确的问题,但它在这里。我正在尝试打印 sumofrain
向量中的最大和最小降雨量以及 yearly
向量中的相应年份。
只是为了弄清楚 sumofrain
向量中的最大降雨量是否是向量中的第 7 个值,那么我想要输出的年份是 yearly
向量中的第 7 个值等等.
将雨量总和存储在年份的地图中 -> 双倍。
std::map<int, double> rainfall;
while(file >> year >> month >> maxdeg >> mindeg >> afdays >> rainmm >> sunhours)
{
rainfall[year] += rainmm;
frost.push_back(afdays);
}
然后,当文件读取完成后,通过例如 lowest/highest 降雨量在地图中找到条目。 Finding minimum value in a Map
你得到的迭代器有 ->first
和 ->second
那一年的实际降雨量。
鉴于向量 yearly
和 sumofrain
不是 锯齿状,您可以简单地检查从头开始的距离。
// Get iterator to the max element in container.
auto it = std::max_element(std::begin(sumofrain), std::end(sumofrain));
// Get index of element pointed to by iterator.
auto index = std::distance(std::begin(sumofrain), it);
auto maxRain = *it;
auto maxYear = yearly[index];
std::cout << "Wettest year: " << maxYear << ". ";
std::cout << "Rainfall recorded: " << maxRain << " mm." << std:: endl;
您应该将 max_element(sumofrain.begin(),sumofrain.end())
返回的迭代器存储到一个变量中。
auto itMax = max_element(sumofrain.begin(),sumofrain.end());
然后,找出找到的元素的从零开始的索引:
itMax - sumofrain.begin();
并找到值:
*itMax
不确定我是否针对我实际要问的问题发布了正确的问题,但它在这里。我正在尝试打印 sumofrain
向量中的最大和最小降雨量以及 yearly
向量中的相应年份。
只是为了弄清楚 sumofrain
向量中的最大降雨量是否是向量中的第 7 个值,那么我想要输出的年份是 yearly
向量中的第 7 个值等等.
将雨量总和存储在年份的地图中 -> 双倍。
std::map<int, double> rainfall;
while(file >> year >> month >> maxdeg >> mindeg >> afdays >> rainmm >> sunhours)
{
rainfall[year] += rainmm;
frost.push_back(afdays);
}
然后,当文件读取完成后,通过例如 lowest/highest 降雨量在地图中找到条目。 Finding minimum value in a Map
你得到的迭代器有 ->first
和 ->second
那一年的实际降雨量。
鉴于向量 yearly
和 sumofrain
不是 锯齿状,您可以简单地检查从头开始的距离。
// Get iterator to the max element in container.
auto it = std::max_element(std::begin(sumofrain), std::end(sumofrain));
// Get index of element pointed to by iterator.
auto index = std::distance(std::begin(sumofrain), it);
auto maxRain = *it;
auto maxYear = yearly[index];
std::cout << "Wettest year: " << maxYear << ". ";
std::cout << "Rainfall recorded: " << maxRain << " mm." << std:: endl;
您应该将 max_element(sumofrain.begin(),sumofrain.end())
返回的迭代器存储到一个变量中。
auto itMax = max_element(sumofrain.begin(),sumofrain.end());
然后,找出找到的元素的从零开始的索引:
itMax - sumofrain.begin();
并找到值:
*itMax