Cを学ぶための記事の配列++

配列

C ++ 11のトラバーサルサイクルの最適化

フォーマット:

以下のための(変数の型変数名:配列名)

  • ここでは、変数の型もメンバー式オートタイプを埋めるために使用することができます
  • 変換が矛盾しているとする可能性がある場合は、デフォルトのための強力なフォワーディング

例:

int Students[5]{}; //学号
int num = sizeof(Students) / sizeof(int);
for (int i = 0; i < num; ++i)
{
	cout << "请输入第" << i + 1 << "个学生的学号:";
	cin >> Students[i];
}
//for (int i : Students)   //可以用这个
for (auto i : Students) //也可以用这个
{
	cout << i << endl;
}

多次元配列を確認

二次元配列トラバーサル:

	int students[3][3]
	{ 
		{1,2,3},
		{4,5,6},
		{7,8,9}
	};
	for (int i = 0; i < 3; i++)
	{
		for (auto j : students[i]) //用上c++11的新方法,挺好的
		{	
			cout << j << " ";
		}
		cout << endl;
	}

3次元配列が似ている、コードがここに与えられます。

	int students[2][2][2]
	{ 
		{
			{1,2},
			{3,4},
		},
		{
			{5,6},
			{7,8},
		}
	};
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 2; j++)
		{
			for (auto k : students[i][j])
			{
				cout << k << " ";
			}
			cout << endl;
		}
		cout << endl;
	}

結果:
ここに画像を挿入説明
配列の注意:

  • そうではないすべて、配列を使用するように強制しない限り、;これはクロスボーダー抜け穴のありふれた問題であるため、プログラムはおそらく予測不可能なエラーを生成するか、攻撃されています!

  • 最も低次元優先順位のオペレーティングシステムのメモリに応じて多次元配列

レビューの配列

共通操作

  • サイズ()は、コンテナのサイズを照会するために使用され
  • すべて初期化するための塗りつぶし(のconst int型)
  • 安全なアクセスのための(数値)で(クロスボーダー例外がスローされます)
  • オーバーロード[]、配列アクセスと同様に、それは範囲外となり
  • 2つのリロードを比較するために使用することができます==

これらは、最も基本的な使い方です!

サンプルコード:

	std::array<int, 3> StusID{};
	std::array<int, 3> _StusID{25,25,25};
	cout << "size = " << StusID.size() << endl;
	StusID.fill(25);
	for (int i = 0; i < StusID.size(); i++)
	{
		//cout << "stu[" << i << "] = " << StusID[i] << endl;  //不安全
		cout << "stu[" << i << "] = " << StusID.at(i) << endl;
	}
	if (StusID == _StusID)cout << "相等" << endl;
	else  cout << "不相等" << endl;

結果:
ここに画像を挿入説明

レビューのベクトル

共通操作

図1に示すように、初期化動作

下に見える5つの方法があります:

std::vector<int> StuID1; //空容器
std::vector<int> StuID2{ 3,4,5 }; //有三个数
std::vector<int> StuID3(5); //有五个数,并全为0
std::vector<int> StuID4(3,50); //3个数,全为50

結果は、訪問を示しています。
ここに画像を挿入説明

図2に示すように、一般的な方法

  • 一back(値)は、コンテナ番号に挿入されます
  • 割り当て(NUM、値)コンテナはNUM値の再初期化された値であります
  • クリア()空の容器
  • そうでない場合、容器が空である0を返す)(空
  • (NUM)容器の内容物への安全なアクセスで(クロスボーダー例外)

サンプルコード:

	std::vector<int> StuID1; //定义空容器
	StuID1.push_back(5); //插入一个5
	StuID1.push_back(10); //插入一个10
	for (int i = 0; i < StuID1.size(); i++) //遍历
	{
		cout << "Stu1 [" << i << "] = " << StuID1.at(i) << " ";
	}
	cout << endl;
	StuID1.assign(3, 8);  //重新初始化
	for (int i = 0; i < StuID1.size(); i++)
	{
		cout << "Stu1 [" << i << "] = " << StuID1.at(i) << " ";
	}
	cout << endl;
	StuID1.clear(); //清空
	if (StuID1.empty())cout << "空的" << endl;
	else cout << "不是空的" << endl;

結果:
ここに画像を挿入説明
自分のハードワークに感謝!

リリース7件のオリジナルの記事 ウォンの賞賛8 ビュー404

おすすめ

転載: blog.csdn.net/u010092716/article/details/104321233