我在我的代码中比较有符号和无符号整数表达式:
vector<long int> row;
long n,m;
long int pro=1;
cin>>n;
for(long i=0;i<n;i++)
{
long int temp;
for(long j=0;j<n;j++)
{
cin >> temp;
row.push_back(temp);
}
}
cin >> m;
for(long i=0;i<row.size();i++)
pro = pro * pow(row[i],m);
long int mod = 1000000007;
cout<< (long int)pro%mod;
在行:for(long i=0;i<row.size();i++)
如何修复此警告?
最佳答案
std::vector::size
返回值 size_type
,即 Unsigned integral type (usually std::size_t
) .
您的循环计数变量的类型为 long
这是一个 signed 类型。因此,在循环条件中,您正在比较有符号和无符号类型。
解决方法很简单:使用std::vector<long int>::size_type
(或者甚至可能是 size_t
)而不是 long
.
关于c++ - 警告 : comparison between signed and unsigned integer expressions. 。如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31889596/