トップC++入門 > コンテナクラス
コンテナクラス

1.コンテナクラス

コンテナクラスとはクラス、構造体、プリミティブデータ型を複数入れることができる入れ物である。 コンテナクラスとしては、vector(可変長配列)、list(任意位置にある要素の高速挿入・削除が可能)、 unoredered_map(ハッシュによる連想配列)などがある。

2.使い方

vetorクラスの使用例を下に示す。

[vector01.cpp]
#include <iostream>
#include <vector>       

using namespace std;

int main() {
    vector<int> data = { 4, 6, 5 };

    for (auto n : data)
        cout << n << endl;
}

このプログラムをコンパイル・実行した結果を下に示す。

c:\mh\www\cpp>cl /nologo /EHsc vector01.cpp
vector01.cpp

c:\mh\www\cpp>vector01
4
6
5

C++も昔数年は使ったが、近年は敬遠していることもあり、例外処理が自分には分かりずらい。 マニュアル[4]に「ISO 標準の C++ 例外処理 (/EHs または /EHsc) の方がコードの移植性と柔軟性に優れているため、 こちらの例外処理を使用することを強くお勧めします。 /HSsc オプションは C++ 例外のみをキャッチし、extern "C" として宣言された関数が C++ 例外をスローしないものと想定するようにコンパイラに指示します」 とある。

C++からCの関数を使うときは、プロトタイプの前に extern "C" をつける。 「Cの関数が C++例外をスローしないものと想定する」の具体例が分からない。 C例外はスローされるならば、その具体例、C関数で起こる C++例外の具体例など、機会があれば事例を挙げて説明を補足したい。

A.リファレンス

[1] C++ コンテナ クラス入門
[2] C++ 動的配列クラス std::vector 入門
[3] C++ プログラミングガイド > 第 4 章 テンプレート
[4] /EH (例外処理モデル)