如何将std :: map中的元素数量作为unsigned long?
假设您有这样的对象:
std::map<unsigned long, someClass *> myNightmare;
我一直试图弄清楚如何获得它的元素数量。你看,我需要这个号码作为无符号长号,这样做似乎不正确:
unsigned long count = myNightmare.size();
那么你应该如何将元素的数量作为无符号长?
答案 0 :(得分:4)
使用静态演员。
long unsigned mySize = static_cast<long unsigned>(myNightmare.size());
答案 1 :(得分:2)
要真正便携和正确,您应该使用标准std::size_t
或更准确地使用std::map<unsigned long, someClass*>::size_type
。
后者是std::map::size
返回的类型,但通常与更通用的std::size_t
不同。
如果你真的想继续使用long unsigned
,那么你的行:
unsigned long count = myNightmare.size();
将为您执行隐式转换。