c++ - 成对地遍历一个 vector ,三元组,

标签 c++ boost stl

<分区>

Possible Duplicate:
combination and permutation in C++

假设我有一个包含以下元素的 vector :{1,2,3}。我怎样才能以成对的方式遍历 vector 。所以第一次迭代是 {1,2},第二次是 {1,3},最后第三次是 {2, 3}。

对于三胞胎,只有一次迭代:在本例中为 {1,2,3}。

STL 或 boost 中是否有算法来实现这一点?

谢谢, 基督徒

最佳答案

for (int i = 0; i < vec.size() - 1; ++i)
    for (int j = i + 1; j < vec.size(); ++j)
        std::cout << '{' << vec[i] << ',' << vec[j] << '}';

关于c++ - 成对地遍历一个 vector ,三元组,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244518/

相关文章:

c++ - 如何将元素添加到链表的末尾

c++ - 具有单个成员(也是自定义结构)的自定义结构(包装器)的集合,到单个成员的集合

c++ - 版本 `CXXABI_1.3.8' 未找到(...需要)

c++ - 将结构链表添加到数组会产生错误

c++ - std::map::iterators post increment 的奇怪行为

c# - .NET 三重 des 到 Windows API

c++ - 最好保留 vec4 而不是 vec3 以避免总是转换?

c++ - boost 正则表达式模式语法困惑

c++ - boost::asio 的扩展被中断后挂起

c++ - 如果我们无法从 C++ 容器中删除元素,我们该怎么办