1. ホーム
  2. c++

[解決済み] STLコンテナにおけるvalue_typeの使い方を教えてください。

2022-02-02 22:15:32

質問

の用途は何ですか? value_type STLコンテナでは?

MSDNより。

// vector_value_type.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   vector<int>::value_type AnInt;
   AnInt = 44;
   cout << AnInt << endl;
}

の意味がわかりません。 value_type は、ここで達成されますか? この変数は int と同じですか?コーダーがベクターに存在するオブジェクトのタイプをチェックするのが面倒だから、これを使うのでしょうか?

これも似たようなものだと思います。 allocator_type , size_type , difference_type , reference , key_type などです。

解決方法は?

そうです、あなたの例では、あなたが必要であることを知るのは非常に簡単です。 int . 複雑なのは、ジェネリック・プログラミングです。 例えば、私が一般的な sum() 関数は、反復するコンテナの種類とその要素のタイプを知る必要があるので、次のようなものが必要になります。

template<typename Container>
typename Container::value_type sum(const Container& cont)
{
    typename Container::value_type total = 0;
    for (const auto& e : cont)
        total += e;
    return total;
}