【发布时间】:2013-06-20 01:19:03
【问题描述】:
任何人都可以帮助我解决已签名的未签名不匹配问题吗?这是关于如果 my_size
void set::add(SET_ITEM_TYPE newItem)
// post: If newItem is not in this set, newItem is added
// and the size of the set increased by +1.
{
if (positionOf(newItem) == -1 )
{
if(my_size >= my_item.capacity())
{
my_capacity = 2 * my_item.capacity();
my_item.resize( my_capacity );
}
my_item[my_size] = newItem;
my_size++;
}
}
【问题讨论】:
-
错误(实际上很可能只是一个警告)是不言自明的。 my_item.capacity() 返回一个无符号类型,并将其与有符号类型进行比较。
-
如果你想知道这里的问题是什么,我们需要知道类型是什么。即,my_size 的类型是什么,my_item.capacity 的类型是什么。
-
您也想修复缩进。实际上,总体而言,您在这里的格式非常糟糕。
-
警告的原因是算术转换。如果您将
int与unsigned int进行比较,则int将“转换”为unsigned int,这会使任何负值变为正值,因此即使在数学上进行比较也是错误的是的。 -
我的猜测是
my_item是 SET_ITEM_TYPE 或其他东西的向量(因为capacity、resize和operator [](int))
标签: c++ compiler-errors