2018年02月21日
《その300》 問題演習 p.389演習10-4
新版明解C++中級編 p.389 演習10-4
次のプログラムは、int型の配列とベクトルの表示を行っている。
double型や string型などの表示も行うように書き換えよ。
#include <vector>
#include <iostream>
using namespace std;
// 全要素の表示
template<class Iterator>
void print(Iterator first, Iterator last) {
for (Iterator i = first; i != last; i++)
cout << *i << " ";
}
int main() {
int a[] = { 1, 2, 3, 4, 5 };
vector<int> x(a, a + 5);
// 関数 print にポインタを渡す。
cout << "a … "; print(a, a + 5);
cout << '\n';
// 関数 print に反復子を渡す。
cout << "x … "; print(x.begin(), x.end());
cout << '\n';
}
// 解答
#include <vector>
#include <string>
#include <iostream>
using namespace std;
// 全要素の表示
template<class Iterator>
void print(Iterator first, Iterator last) {
for (Iterator i = first; i != last; i++)
cout << *i << " ";
}
int main() {
int a[] = { 1, 2, 3, 4, 5 };
vector<int> x(a, a + 5);
vector<double> d{ 1.1, 2.2, 3.3, 4.4 };
vector<string> s{ "abc", "defg", "hi" };
vector<char> c{ '<', 'C', '+' ,'+', '>' };
// 関数 print にポインタを渡す。
cout << "a … "; print(a, a + 5);
cout << '\n';
// 関数 print に反復子を渡す。
cout << "x … "; print(x.begin(), x.end());
cout << '\n';
cout << "d … "; print(d.begin(), d.end());
cout << '\n';
cout << "s … "; print(s.begin(), s.end());
cout << '\n';
cout << "c … "; print(c.begin(), c.end());
cout << '\n';
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7344581
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック