どうすればきれいに印刷できstd::vector
ますか?たとえば、を作成した場合、C ++std::vector<int>(6, 1)
のように出力を取得するために何を実行できますか?{1 1 1 1 1 1}
サイズと値が変わる可能性があるため、一般的である必要がありstd::vector<int>(4, 0)
ます{0 0 0 0}
。
質問する
3879 次
1 に答える
14
#include <vector>
#include <algorithm>
#include <iterator>
template<typename T>
std::ostream & operator<<(std::ostream & os, std::vector<T> vec)
{
os<<"{ ";
std::copy(vec.begin(), vec.end(), std::ostream_iterator<T>(os, " "));
os<<"}";
return os;
}
operator<<
次に、通常の構文でベクトルを出力できます。
std::cout<<yourVector;
ここで実際の動作を確認できます。
しかし、より柔軟な解決策については、上記のリンク先の質問をご覧ください。
編集:2つのスペース(最初と最後)が必要ない場合:
template<typename T>
std::ostream & operator<<(std::ostream & os, std::vector<T> vec)
{
os<<"{";
if(vec.size()!=0)
{
std::copy(vec.begin(), vec.end()-1, std::ostream_iterator<T>(os, " "));
os<<vec.back();
}
os<<"}";
return os;
}
于 2013-03-15T14:51:06.000 に答える