繁体   English   中英

如何将std :: map中的元素数量作为unsigned long?

[英]How do you get the number of elements in a std::map as an unsigned long?

如何将std :: map中的元素数量作为unsigned long?

假设你有一个像这样的对象:

std::map<unsigned long, someClass *> myNightmare;

我一直试图弄清楚如何获得它的元素数量。 你看,我需要这个数字作为无符号长整数,这样做似乎不正确:

unsigned long count = myNightmare.size();

那么你应该如何将元素的数量作为无符号长?

使用静态演员。

long unsigned mySize = static_cast<long unsigned>(myNightmare.size());

要真正可移植和正确,你应该使用标准的std::size_t或更精确的std::map<unsigned long, someClass*>::size_type

后者是从std::map::size返回的类型,但它通常不同于更通用的std::size_t

如果你真的想继续使用long unsigned ,那么你的行:

unsigned long count = myNightmare.size();

将为您执行隐式转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM