[英]cout vector<vector<int>> more succinctly
#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;
int main()
{
vector<vector<int>> v1 = { {1, 2}, {3, 4} };
vector<vector<int>> v2 = { {5, 6}, {7, 8} };
for (int i = 0; i < v1.size(); ++i)
{
transform(v1[i].begin(), v1[i].end(), v2[i].begin(), v1[i].begin(), plus<int>());
}
for (const auto& i : v1)
{
for (const auto& j : i)
{
cout << j << " ";
}
cout << endl;
}
}
可以使用更簡潔的代碼打印矢量嗎? 以algorithm
為例。 謝謝。
輸出:
6 8
10 12
編輯:我不想寫任何新的或重載運算符。
一種方法是使用std::ostream_iterator
:
for(const auto& i : v1) {
using V = std::decay<decltype(i)>::type::value_type;
std::copy(i.begin(), i.end(), std::ostream_iterator<V>(std::cout, " "));
cout << endl;
}
IMO,這些循環更易於閱讀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.