std::minmaxC++11中引入的函数应该分别返回一对给定值中的最小值和最大值。在这个例子中:inta=6,b=5;autop=std::minmax(a,b);std::cout这就像广告和打印一样工作p.first=5p.second=6现在我想有效地修改a和b来强制b低于a,就像运行这段代码一样:if(b>a)std::swap(a,b);所以我写了这个:inta=5,b=6;std::tie(b,a)=std::minmax(a,b);std::cout但是,这会打印:a=5b=5改用initializer_list重载,如下所示:std::tie(b,a)=std::m
std::minmaxC++11中引入的函数应该分别返回一对给定值中的最小值和最大值。在这个例子中:inta=6,b=5;autop=std::minmax(a,b);std::cout这就像广告和打印一样工作p.first=5p.second=6现在我想有效地修改a和b来强制b低于a,就像运行这段代码一样:if(b>a)std::swap(a,b);所以我写了这个:inta=5,b=6;std::tie(b,a)=std::minmax(a,b);std::cout但是,这会打印:a=5b=5改用initializer_list重载,如下所示:std::tie(b,a)=std::m
C++11具有返回一对值的函数std::minmax_element。然而,这在处理和读取时相当困惑,并且会产生一个额外的、后来无用的变量来污染作用域。autolhsMinmax=std::minmax_element(lhs.begin(),lhs.end());int&lhsMin=*(lhsMinMax.first);int&lhsMax=*(lhsMinmax.second);有没有更好的方法来做到这一点?比如:intlhsMin;intlhsMax;std::make_pair(lhsMin,lhsMax).swap(std::minmax_element(lhs.begin
C++11具有返回一对值的函数std::minmax_element。然而,这在处理和读取时相当困惑,并且会产生一个额外的、后来无用的变量来污染作用域。autolhsMinmax=std::minmax_element(lhs.begin(),lhs.end());int&lhsMin=*(lhsMinMax.first);int&lhsMax=*(lhsMinmax.second);有没有更好的方法来做到这一点?比如:intlhsMin;intlhsMax;std::make_pair(lhsMin,lhsMax).swap(std::minmax_element(lhs.begin