【发布时间】:2019-07-18 06:15:06
【问题描述】:
我正在尝试从向量中获取 minmax 元素。下面是我的代码的一个过于简化的 sn-p:
std::vector<int> vec;
for (int i = 1; i < 10; i++) {
vec.push_back(i);
}
auto minmax = std::minmax(vec.begin(), vec.end());
int min_value = *minmax.first;
当我尝试取消引用最后一条语句中的迭代器时,我得到一个段错误。我不明白为什么。
【问题讨论】:
-
您确定要取消引用它吗?我会仔细检查the documentation。您可能会将其与
std::mixmax_element混淆。 -
基本上,您试图在某个内存位置地址获取和 int 值,并且作为地址,您使用向量中的最小值......这对我来说听起来很奇怪。
-
你知道这是寻找两个 iterators 中最小和最大的吗? IE。不是他们指向的价值观?
-
避免使用
auto的另一个原因