将向量的size()强制转换为int不起作用

SQA*_*777 -3 c++ vector

我正在实时学习C ++,并且对向量有问题,所以我正在编写一些使用向量使它们熟悉的程序。

我遵循了这篇文章中有关打印出向量的size()调用值的建议:

如何获取std :: vector的大小作为int?

我的代码是一个简单的C ++代码:

#include <vector>

int main(int argc, char ** argv) {
   /* create an int vector of size 10, initialized to 0 */
   std::vector<int> int_list[10];
   int int_list_size;

   int_list_size = static_cast<int>(int_list.size()); // <-- compilation error here
} // End main()
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu 16.04上出现此错误:

"error: request for member 'size' in 'int_list', which is of non-class type 'std::vector<int> [10]'
Run Code Online (Sandbox Code Playgroud)

由于向量int_list的大小为10,因此size()不应该返回10,然后我可以将其转换为int吗?

NoD*_*und 6

您不是在创建矢量,而是在创建矢量数组:

std::vector<int> int_list[10];
Run Code Online (Sandbox Code Playgroud)

您应该使用:

std::vector<int> int_list(10);
Run Code Online (Sandbox Code Playgroud)

看到:

  • “,0”是多余的,而cplusplus.com是垃圾网站(首选cppreference.com) (6认同)