以下代码片段编译失败:
#include <vector>
#include <string.h>
#include <cstddef.h>
#include <stddef.h>
using namespace std;
vector<int> list1{1,3,5,7,11};
size_type s1 = list1.size();
我正在使用 Microsoft Visual Stdio,但我不希望它依赖于编译器。我认为问题在于我没有包含正确的 header 。我应该包括什么标题?
鲍勃
最佳答案
size_type
是您正在使用的容器的从属名称。你需要
std::vector<int>::size_type
你可以使用 std::size_t
因为这就是size_type
通常归结为但是 std::vector<int>::size_type
保证是正确的。
如果您使用的是 C++11 或更高版本,那么您可以忘记这个细节,只需使用
auto s1 = list1.size();
编译器将推断出正确的类型,如果您更改容器类型,则需要更改此行。
关于c++ 和类型 size_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230907/