【发布时间】:2015-04-14 14:17:25
【问题描述】:
我需要在代码的很多地方将std::vector<std::vector<T>> 转换为std::vector<T>(逐行)。我显然知道如何自己实现它,但是在 boost 或 stl 中是否有任何短代码解决方案? (我只能使用 C++98)
UPD:我需要一些非常简短的解决方案,例如某些函数的单行调用(可能使用 boost lambda),没有循环,因此来自C++ pushing elements of a vector of vectors into a vector 的解决方案是不可接受的。
UPD2:请不要用循环发布答案,我知道该怎么做。问题是短代码方式,而不是想法。
【问题讨论】:
-
调用后还需要原向量的原样吗?
-
我不明白如果没有循环怎么能做到这一点。
-
如果一个人在很多地方都需要这个,他们要么需要使用数据(迭代它),要么需要以连续的形式将其呈现给某个 API。在后一种情况下,最好重新设计存储,以便不需要布局翻转(多阵列?)。首先,您将提供一个自定义迭代器并从那里使用标准算法