c++ - 计算数组长度

标签 c++ arrays

我有一个如下声明的 C++ 数组:

CString carray[] =
{
        "A",
        "B",
        "C",
        "D",
        "E"
}

我想在运行时确定carray 的长度。我正在做:

int iLength = sizeof(carray)/sizeof(CString);

这是正确的吗?

最佳答案

您可以使用以下功能模板。如果您使用的是 Boost,您可以调用 boost::size .

template <typename T, std::size_t N>
std::size_t size(T (&)[N])
{
    return N;
}

int iLength = size(carray);

然而,正如其他人已经指出的那样,您应该更喜欢 std::vector 而不是 C 风格的数组。

关于c++ - 计算数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1124534/

相关文章:

c++ - 单向链表 C++

objective-c - 数组没有正确保留?

c - 字符串初始化的差异

java - 如何将多行StringBuilder转换为字符数组?

c++ - 选择局域网中的一台计算机作为服务器

c++ - 停止阻塞在 recv() 上的接收器线程

c++ - sort() 函数中的赋值操作

c++ - 从 ARM 的源代码交叉编译 Qt 4.7 的问题

ios - 遍历 NSDictionary 并将其保存到对象类型的数组中

arrays - 如何在 Perl 中将一个数组分成两个不同的数组