ヘビゲーム

今日のメニュー

  • ポインタと変数の関係
    • 変数のアドレスを代入 ⇒ 
    • アドレスがある場所の中身を覗く ⇒ 
    • ポインタを使って変数に別名を付けてアクセス
    • 配列とポインタの関係(配列の名前は配列の先頭アドレス! int *p = arr
    • アドレスを使って配列にアクセスしてみる
    • C言語の配列(配列数は動的決定(その場で決める)できない!)
    • C言語の配列(配列数の指定に使えるのは定数だけ(const int)
    • 配列は転校生に対応できない!
  • 伸び縮みできる配列(vector<型> 配列名
    • vector配列の宣言 vector<型名> 配列名(配列数, 初期価値);
    • vector配列の要素へのアクセス 読み込み、書き込みとも通常の配列と同様
    • 配列要素の追加 push_back(要素)
    • 配列要素の挿入 insert(先頭アドレス+何個目, 要素)
    • 配列の最後尾の削除 pop_back()
    • 配列の指定要素の削除 erase(先頭アドレス+何個目)
Listing. 1: 伸び縮みできる便利な配列=vector
"theMain.cpp"
#include <cstdio>
#include <iostream>
#include <vector>
 
using std::cin;
using std::vector;
 
//const int ARRNUM = 10000;
 
int main()
{
	int student_num = 0;
	printf("生徒の数を入力:");
	cin >> student_num;
	//int型のarr[student_num]をすべて0で初期化
	vector<int> arr(student_num, 0);
	for (int i = 0; i < arr.size(); i++)
	{
		//1~student_numをarrに代入
		arr[i] = i + 1;
	}
 
	arr.push_back(100);
	arr.push_back(101);
	arr.push_back(102);
        //先頭のポインタをとって来い!(型は空気読め!=auto)
	auto sentou = arr.begin();//型推論で先頭アドレスをゲット
	int data = 103;
	//途中(先頭から何番目を指定)にデータを挿入
	arr.insert(sentou + 2, data);
	//先頭にデータを挿入
	arr.insert(arr.begin(), -1);
 
	//int arr[student_num] = {0};
 
	for (int i = 0; i < arr.size(); i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	//ケツを消去
	arr.pop_back();
	for (int i = 0; i < arr.size(); i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	//ケツを消去
	arr.pop_back();
	for (int i = 0; i < arr.size(); i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	//指定した場所を消去
	arr.erase(arr.begin() + 2);
	for (int i = 0; i < arr.size(); i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
 
	return 0;
}
  • game-engineer/classes/2024/game-creation-1/hairetsu-02.txt
  • 最終更新: 14カ月前
  • by root