相关疑难解决方法(0)

size_t vs C++和/或C中的int

为什么在C++容器中,它返回的是size_type而不是int?如果我们正在创建自己的结构,我们是否也应该鼓励使用size_type

c c++ size-type

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

为符号值分配给无符号整数时,为什么编译器没有给出错误? - C++

我知道unsigned int不能保持负值.但是以下代码编译时没有任何错误/警告.

unsigned int a = -10;
Run Code Online (Sandbox Code Playgroud)

当我打印变量a时,打印出错误的值.如果无符号变量不能保存有符号值,为什么编译器允许它们编译而不给出任何错误/警告?

有什么想法吗?

编辑

编译器:VC++编译器

需要使用警告级别4.

c++ variables unsigned compiler-errors compiler-warnings

17
推荐指数
2
解决办法
3909
查看次数

如何实现自己的函数到std :: vector?

我想添加一个函数,它将.size()值作为整数返回,而不是无符号整数.

编辑:由于评论,我解释更详细:

我有代码:

int something = 3;
if(arr.size() > something) 
Run Code Online (Sandbox Code Playgroud)

这将产生编译器警告,我不喜欢添加(int)到我拥有它的每个地方.所以,我认为使用sizei()函数会很好的解决方案:

int something = 3;
if(arr.sizei() > something) 
Run Code Online (Sandbox Code Playgroud)

哪个不会产生警告.

所以,我不想创建一个单独的函数,而是std :: vector本身的一个函数.

编辑:似乎这样做的唯一方法是创建另一个函数,例如:

template <typename T>
inline int sizei(const T &arr){
    return (int)arr.size();
}
Run Code Online (Sandbox Code Playgroud)

从积极的方面来看:这似乎根本不会增加我的可执行文件大小.

c++ std

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