ベクトルの内容を印刷するために使用することができる<<コードの下ベクトルの最初のn個の値を印刷するオペレータ(全体ではなくベクトル)
template <class T>
ostream & operator << (ostream & out, const vector<T> & data)
{
out << "[";
for (int i = 0; i < (int) data.size(); ++i)
out << data[i] << (i == data.size() - 1 ? "" : ",");
out << "]";
return out;
}
質問オーバーロード:ベクトルの大きさが5000とだけ最初のn個ある場合
1) (たとえば10個)の要素が値を格納していて、他の要素が使用されていない場合、最初のn個の値だけを出力するようにこのコードを変更する方法はありますか?
2)私は、2Dベクトルを印刷しようとした -
template <class T>
ostream & operator << (ostream & out, const vector<vector<T>> & data)
{
out << "[";
for (int i = 0; i < (int) data.size(); ++i)
{
for (int j = 0; j < (int) data[i].size(); ++j)
out << data[i][j] << (j == data[i].size() - 1 ? "" : ",");
out << endl;
}
out << "]";
return out;
}
が、これは動作しません。だから、1)全体の2Dベクトルを印刷する適切な方法は何ですか? 2)いくつかのn * mの値(1dベクトルの最初の質問で2dベクトル全体ではない)?
ベクトルのサイズが5000の場合、ベクトルは5000個の値を格納しています。ベクトルには値以外の概念はありません。 –
@Benjamin Lindley - 競合プログラミングでは、より多くのテストケースがある場合、最大入力サイズのグローバルベクトルを宣言するために使用されますが、ほとんどのテストケースでは、全体ベクトルは使用されません。 –