Все контейнеры в stl имеют различные определения типов. Например, value_type
- это тип элемента, а size_type
- это тип сохраненного числа. Таким образом, контейнеры являются полностью общими для платформы и реализации.
Если вы создаете свои собственные контейнеры, вы должны также использовать size_type
. Обычно это делается
typedef std::size_t size_type;
Если вы хотите размер контейнера, вы должны написать
typedef vector<int> ints;
ints v;
v.push_back(4);
ints::size_type s = v.size();
Что приятно, если позже вы захотите использовать список, просто измените typedef на
typedef list<int> ints;
И все равно будет работать!