《C++Primer》5 th課後練習第三章文字列、ベクトルと配列41~45
20579 ワード
練習3.41プログラムを記述し、
練習3.42整数要素を含む
練習3.43は、
練習3.44前の練習中のプログラムを書き換え、ループ制御変数のタイプの代わりにタイプ別名を使用する.
3.45でもう一度プログラムを書き換える練習をして、今度はautoキーワードを使います.3.45でもう一度プログラムを書き換える練習をして、今度はautoキーワードを使います.
vector
オブジェクトを整数配列で初期化する.#include
#include
#include
using namespace std;
int main()
{
int arr[] = { 1,2,3,4,5 };
vector<int> vec(begin(arr), end(arr));
for (auto i : vec)
cout << i << " ";
cout << endl;
return 0;
}
練習3.42整数要素を含む
vector
オブジェクトを整数配列にコピーするプログラムを作成します.#include
#include
#include
using namespace std;
int main()
{
int arr[] = { 1,2,3,4,5 };
vector<int> vec(begin(arr), end(arr));
int arr2[5] = {};
for (int i = 0; i < 5; i++)
{
arr2[i] = vec[i];
cout << arr2[i] << " ";
}
cout << endl;
return 0;
}
練習3.43は、
ia
の要素を出力できるように、3つの異なるバージョンのプログラムを作成します.バージョン1では、for
文を使用して反復プロセスを管理します.バージョン2とバージョン3では、通常のfor文が使用されます.バージョン2では、下付き演算子が使用され、バージョン3ではポインタが使用されます.また、すべての3つのバージョンのプログラムでは、タイプ別名、auto
キーワード、decltype
キーワードは使用できません.#include
using namespace std;
int main()
{
int cnt = 1;
int ia[3][4];
for (auto p = ia; p != ia + 3; p++)
for (auto q = *p; q != *p + 4; q++)
*q = cnt++;
for (const int(&p)[4] : ia)
for (int q : p)
cout << q << " ";
cout << endl;
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; j++)
cout << ia[i][j] << " ";
cout << endl;
for (int(*p)[4] = ia; p != ia + 3; p++)
for (int *q = *p; q != *p + 4; q++)
cout << *q << " ";
cout << endl;
return 0;
}
練習3.44前の練習中のプログラムを書き換え、ループ制御変数のタイプの代わりにタイプ別名を使用する.
#include
using namespace std;
int main()
{
int cnt = 1;
int ia[3][4];
for(auto p = ia; p != ia+3; p++)
for (auto q = *p; q != *p+4; q++)
*q = cnt++;
using int_array = int[4];
typedef int I;
for (int_array *p = ia; p != ia + 3; p++)
for (I *q = *p; q != *p + 4; q++)
cout << *q << " ";
cout << endl;
return 0;
}
3.45でもう一度プログラムを書き換える練習をして、今度はautoキーワードを使います.3.45でもう一度プログラムを書き換える練習をして、今度はautoキーワードを使います.
#include
using namespace std;
int main()
{
int cnt = 1;
int ia[3][4];
for(auto p = ia; p != ia+3; p++)
for (auto q = *p; q != *p+4; q++)
*q = cnt++;
for (auto p = ia; p != ia + 3; p++)
for (auto q = *p; q != *p + 4; q++)
cout << *q << " ";
cout << endl;
return 0;
}