私はmySize
というメンバ変数を持っていますが、マップのサイズとの差、たとえばmyMap
を計算したいと思います。 mySize
を宣言するときはどのタイプを使用しますか?私は今uint32_tを使用しています。 例えば、 myClass.h
において:map.size()で計算されるint型を宣言する方法
static uint32_t getDifference(std::map<string, int> myMap);
static uint32_t mySize_;
myClass.cpp
において:
uint32_t getDifference(std::map<string, int> myMap){
return std::abs(mySize_ - myMap.size());
}
UPDATE:上記のコードに重大なバグ。 std::abs
はuint32_t
には使用できません。しかし、これはあまり問題に関連していません。 uint32_t
の代わりにstd::size_t
を使用してください。
このタイプは 'size_t'です。 –
地図全体をコピーしてサイズを尋ねるだけですか?それはかなりオリジナルです – Slava
参照を確認してみませんか:['std :: map'](http://en.cppreference.com/w/cpp/container/map)、[' std :: map :: size () '](http://en.cppreference.com/w/cpp/container/map/size)を参照してください。代わりに、ソースコード – Drop