相关疑难解决方法(0)

'size_t'vs'container :: size_type'

是否有之间的差异size_tcontainer::size_type

我所理解的size_t是更通用的,可以用于任何size_types.

但是container::size_type针对特定种类的容器进行了优化?

c++ size-type container-data-type

100
推荐指数
3
解决办法
4万
查看次数

在C++中使用size_t是一种好习惯吗?

我看到人们size_t只要意味着无符号整数就会使用.例如:

class Company {
  size_t num_employees_;
  // ...
};
Run Code Online (Sandbox Code Playgroud)

那是好习惯吗?有一点是你必须包括<cstddef>.应该是unsigned int吗?甚至只是int

只是使用int对我有吸引力的声音,因为它避免了像这样的愚蠢错误(因为人们经常使用int):

for(int i = num_employees_ - 1; i >= 0; --i) {
   // do something with employee_[i]
}
Run Code Online (Sandbox Code Playgroud)

c++ types

13
推荐指数
3
解决办法
9773
查看次数

为什么C ++ STL使用unsigned in size()函数?

我在使用这样的循环时遇到了一个问题,

//vector<int> sides;
for (int i = 0; i < sides.size()-2; i++) {
  if (sides[i] < sides[i+1] + sides[i+2]) {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是size()方法使用无符号数字。因此,大小小于2的向量会产生不确定的结果。

我知道我应该为循环使用一个无符号变量,但是它不能解决问题。所以我不得不通过类型转换或使用某些条件来处理它。

我的问题是,为什么STL为什么使用unsigned int来消除否定索引访问冲突并产生更多问题?

c++ size containers stl sizeof

1
推荐指数
1
解决办法
278
查看次数

标签 统计

c++ ×3

container-data-type ×1

containers ×1

size ×1

size-type ×1

sizeof ×1

stl ×1

types ×1