c++ - 错误:二进制表达式的操作数无效('vector' 和 'int')
问题描述
给定一个元素数组2n
,将其配对为 n 个元素,然后找到每对中最小元素的总和,然后最大化总和。我为此写了一个类:
class Solution
{
public:
int sum = 0, n;
int arrayPairSum(vector<int>& nums)
{
sort(nums, nums + 2 * n);
for (i = 0; i < 2 * n; i = i + 2)
{
sum = sum + nums[i];
}
return sum;
}
};
但它向我展示了以下错误。
Line 5: Char 23: error: invalid operands to binary expression ('vector<int>' and 'int')
sort(nums,nums+2*n);
~~~~^~~~
/usr/bin/../lib/gcc/x86_6
我应该如何消除这个错误?
解决方案
错误来自这一行
sort(nums, nums+2*n);
^^^^^^^^^
在这里,您尝试添加2*n
到int
s 的向量(即nums
)。这没有定义,因此编译器错误。
您需要将迭代器传递给std::sort
.
#include <algorithm>
std::sort(nums.begin(), nums.end());
此外,请注意在for
-loop 的条件下,
for(i=0; i<2*n; i=i+2)
^^^^^
n
必须初始化并且2*n
必须小于或等于nums.size()
(即向量的大小nums
)。否则,您的代码将具有未定义的行为。
另外,不要练习using namespace std;
。请参阅此处了解更多信息:
推荐阅读
- pine-script - 松树脚本中两个 SMA 交叉和 n 条之间的最高和最低值
- javascript - 如何将 JavaScript 对象插入 Django JSONField
- r - 从数字元素中删除不需要的 0 - R
- sql-server - 查找 MS SQL Server 的连接信息
- css - 如何在 Firefox android 中显示滚动条?
- xamarin.forms - CollectionView VisualStateManager 无法更改选择颜色
- reactjs - React Native onPress 在 IOS 上不起作用,但在 Web 上可以
- powershell - Powershell在创建目录时返回数组
- mysql - MySQL子查询在加入后按字段名提取值
- swiftui - 如何为 Image swiftui 添加阴影?