C++入門 名前空間・for文・配列

はじめに

本投稿は、前回のC++の基礎の続きです。

まだ、ご覧になっていない方は、先に上記のリンクを参照下さい。

名前空間

名前空間とは、ライブラリ・関数の参照時に名前被りを防ぐためのものです。

using namespace ~~~で、名前空間の記述を省略可能になります。

以下のコードを参照下さい。

#include <iostream>
#include <string>

using namespace std;

int main(){
    // 下記の2行は同じ意味です
    std::cout << "Hello World" << std::endl;
    cout << "Hello World" << endl;

    // 下記の2行は同じ意味です
    std::string = "Hello World!!!";
    string = "Hello World!!!";

    // 入力と出力
    cin >> message;
    cout << message;
}

下記の例では、functionという名前の関数を、

AとBという名前空間でそれぞれ定義することで使い分けをしています。

このように、同じ関数名であっても名前空間を分けることで、使い分けることができます。

名前空間の解説に関しては、こちらが非常に勉強になります。

#include <iostream>

namespace A
{
    void function(){std::cout << "A" << std::endl;};
}

namespace B
{
    void function(){std::cout << "B" << std::endl;};
}

int main()
{
    A::f(); // A
    B::f(); // B
}

for文

for文は以下のように記述します。

記述の仕方は、for(初期値;条件;増減){ } です。

#include <iostream>

int main(){
    int x = 10;
    // (初期値;条件;増減)
    for (int i = 0; i <= 10; i++){
        std::cout << i << std::endl;
    }
}

配列

配列の宣言

C/C++での配列の宣言は、下記のように行います。

例えば、10個の要素からなる静的配列を宣言する場合は、int array[10] のように記述します。

これによって、array[0] から array[9] までの要素を格納するメモリが用意されます。

この時、確保されていない array[10] 以降の要素を参照しようとすると、

Segmentation fault エラーが起こります。

また、int array_2[] = [0, 100, 200, 300, 400] のように、配列の初期化を行うこともできます。

#include <iostream>

int main(){
    // 配列の宣言
    int array[10];
    // 値の代入
    array[0] = 10;
    array[1] = 20;
    array[2] = 30;

    // 配列の初期化
    int array_2[] = [0, 100, 200, 300, 400];

    for (int i = 0; i <= 5; i++){
        std::cout << array_2[i] << std::endl;
    }
}

配列の要素数

C++で静的配列(コンパイル時点で要素数が決定している配列)の要素数を算出する場合には、

下記のように配列に割り当てられたメモリサイズ sizeof(array) を、

配列内の1つの要素のメモリサイズ (sizeof(array[0])) で割ることによって求めます。

sizeof(array)では、配列全体に割り当てられたメモリサイズを返すため、注意が必要です。

#include <iostream>

int main(){
    // 配列の宣言
    int array[10];

    // 要素数の算出
    int len = sizeof(array) / sizeof(array[0])

    std::cout << len << std::endl;

}

今回は、C++の名前空間、for文、配列に関して記述しました。

引き継ぎ、基本的な内容に関してまとめていきます。