C++プリントベクター
2022-02-11 19:59:52
1次元ベクトルを印刷する
方法1:基本的なforループを使用する
#include
#include
int main() {
// initial a vector
std::vector<int> arrays{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(int i = 0; i < arrays.size(); ++i) {
std::cout << arrays[i] << " ";
}
std::cout << std::endl;
return 0;
}
方法2:for eachループメソッドを使用する
#include
#include
int main() {
// initial a vector
std::vector<int> arrays{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(auto array: arrays) {
std::cout << array << " ";
}
std::cout << std::endl;
return 0;
}
方法3:イテレータメソッドを使用する
#include
#include
int main() {
// initial a vector
std::vector<int> arrays{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(auto it = arrays.begin(); it ! = arrays.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
方法4:ostream_iteratorを使用する
#include
#include
#include
int main() {
// initial a vector
std::vector<int> arrays{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::ostream_iterator<int> it(std::cout, " ");
std::copy(arrays.begin(), arrays.end(), it);
return 0;
}
方法5: std::for_each
#include
#include
#include
int main() {
// initial a vector
std::vector<int> arrays{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::for_each(arrays.begin(), arrays.end(), [](const auto &i){std::cout << i << " "; });
std::cout << "\n";
return 0;
}
<ブロッククオート
上記のメソッドはすべて、最後に余分なスペースを表示します。余分な文字を表示せず、任意の文字列をセパレータとして使用できる関数を以下に示します。
#include
#include
template <typename T>
std::ostream& operator<<(std::ostream& out, const std::vector<T>& ve) {
out << "[";
char delim[3] = {'\0', ' ', '\0'};
for (auto& item : ve) {
out << delim << item;
delim[0] = ',';
}
out << "]\n";
return out;
}
template <typename T>
void print(const std::vector<T>& ve, std::string delimiter = ",") {
std::cout << "[";
std::string delim;
if (delimiter == " ")
delimiter.clear();
for (auto& item : ve) {
std::cout << delim << item;
delim = delimiter + " ";
}
std::cout << "]\n";
}
int main() {
std::vector vec{0, 1, 2, 3, 4, 5, 6, 7};
print(vec);
print(vec, ";");
print(vec, "");
print(vec, " ");
std::cout << vec;
return 0;
}
2Dベクターを印刷する
方法1:インデックス・ループ
#include
#include
int main() {
// initial a vector
std::vector<std::vector<int>> arrays{ {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}};
for(int i = 0; i < arrays.size(); ++i) {
for(int j = 0; j < arrays[0].size(); ++j) {
std::cout << arrays[i][j] << " ";
}
std::cout << "\n";
}
return 0;
}
方法2:各ループのために
#include
#include
int main() {
// initial a vector
std::vector<std::vector<int>> arrays{ {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}};
for(auto &array: arrays) {
for(auto &arr: array ) {
std::cout << arr << " ";
}
std::cout << "\n";
}
return 0;
}
方法3:イテレータポインタを使用する
#include
#include
int main() {
// initial a vector
std::vector<std::vector<int>> arrays{ {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}};
for(auto ita = arrays.begin(); ita ! = arrays.end(); ++ita) {
for(auto it = ita->begin(); it ! = ita->end(); ++it) {
std::cout << *it << " ";
}
std::cout << "\n";
}
return 0;
}
関連
-
error: '.' トークンの前に未修飾の ID が必要です。
-
C++ std::string は NULL で初期化できない、基本的な使い方
-
C++:ソースファイルを開くことができない問題
-
C++ JSON ライブラリ jsoncpp 新 API の使用法 (CharReaderBuilder / StreamWriterBuilder)
-
C++ - 文字列クラス超詳細紹介
-
C++のコンパイルエラーで修飾子が破棄される [-fpermissive] 。
-
警告を表示します。ISO C++は文字列定数を'char*'に変換することを禁じています[-Write-strings]。
-
stoi' の解決策は、Dev-c++ のこのスコープで宣言されていません。
-
C++テンプレートテンプレート使用法まとめ
-
c++は、ダブルフリーまたは破損(fasttop)が表示されます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
C/C++共通エラーの概要
-
vs2015 はソースファイル stdio.h を見つけることができない 解決策
-
警告 - 符号付き整数式と符号なし整数式の比較 [-Wsign-compare] 解決方法
-
error: 'vector' does not name a type
-
コンパイルエラー: 制御が非ボイド関数の末尾に達する可能性がある
-
void* から char* への無効な変換」および「文字列定数から 'char*' への非推奨の変換」を解決 "
-
gcc/g++ コンパイル時のエラー解析で期待される型指定子の前に
-
文字列がこのスコープで宣言されていない 問題の解決
-
[エラー]'cout' はこのスコープで宣言されていません。
-
c/c++の "undefined reference to "の解決法