[C++]STL::map実装-学習経験1


42 seoulで行われたタスクのうち、C++コンテナのstl::mapを実装するタスクがあります.
この間私は課題をクリアし、ハッカートンなどに参加し、いくつかの知識を学びましたが...!mapという資料構造についてはまだ深く理解されていない.
まず知らない内容を知り、cppreferenceで定義を検索します.
(詳細については、画像をクリックしてください!)

うん.

多分ぼんやり...
さあ.精神をつかんで、核心から理解しましょう.まずはこれがコアみたい!
-> store elements formed by a combination of a key value and a mapped value, following a specific order
->keyとvalueのペアによるデータ構造を特定の順序で格納します.
考えてみれば、Python Django Piscineを1ヶ月行ったとき、このような形式の構造を使ったことがあるのを覚えています.PythonのDictionary!
いいですね.今は何かできるはずです.(落ち着け…!)
まず、問題を解決する際に常に達成すべき目的を確定することから始めましょう.

[目的]Pythonのdictionaryのような内部構造を実施する容器


目的を達成するために必要な材料:
1.KeyとValからなるデータ型「A」
2.Aを含むデータ型「B」は、特定のルールに従ってリストすることができる
簡単に分けて考えるとこの程度!?
では、まずkey/valueの2つの変数を組み合わせて、ペアの構造体またはクラスを作成します.
単純にtemplate classを使用して、2つの異なる値を組み合わせることができるクラスを作成することから始めましょう.
template<class T1, class T2>
class pair
{
        public:
            T1 first;
            T2 second; 

            typedef T1 first_type;
            typedef T2 second_type;

            //===============================================================================
            //================================= Constructer =================================
            //===============================================================================
            pair() : first(), second() {}

            pair(const T1& param_first, const T2& param_second) : first(param_first), second(param_second)
            {

            }

            pair(const pair<T1, T2>& original) : first(original.first), second(original.second) 
            {

            }
}
うん.このように上記定義の「A」を完成すればよいのですが、
重要なのは「B」のようです.
どんな方法でこの資料型を羅列したほうがいいか調べたほうがいいと思います...!
私が理解できる答えを見つけることが肝心です!
(さすが検索能力&利用率とプログラミング能力…)
To Be Continue..