c++ 和类型 size_type

标签 c++ visual-studio stl

以下代码片段编译失败:

#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/

相关文章:

.net - 为什么 Debug模式文件大小比 Release模式大?

计算温度项目,产生误差

c++ - STL Vector是否默认使用 'new'和 'delete'进行内存分配?

c++ - 对 std::queue 的 pop 和 push 操作使用单独的互斥量而不是一个

c++ - 将 cout 引用到变量位置(文件或 cmd)

c++ - C++ 中数组范围内的有效元素计数

c++ - 奇怪的 C++ float 错误

c++ - 无法在 Visual Studio Community 2015 中编译基本程序(LNK2019 - MSVCRTD.lib)

c++ - 枚举类型的命名空间 - 最佳实践

c++ - 为什么需要 std::make_unique 来初始化成员 std::unique 数组,以及如何解决 C++11 问题?