我有std::vector
一些数据(在我的情况下是点),我想循环遍历所有不同的元素对.对的顺序并不重要(因为我只对点的距离感兴趣).使用经典for
循环,我想要做的是:
std::vectorvec{-1., 3., 5., -8., 123., ...}; for (std::vector ::size_type first = 0; first < vec.size(); ++first) { for (std::vector ::size_type second = first+1; second < vec.size(); ++second) { // Compute something using std::fabs(vec.at(first)-vec.at(second)) } }
我现在的问题是,如果使用基于范围的循环可以更优雅地实现这一点.