C++中main函数调用类内函数的方法
以力扣209题为例
#include <iostream>
#include<vector>
using namespace std;
class minimum_size_subarray_sum
{
public:
static int minSubArrayLen(int target, vector<int> &nums)
{
int i = 0;
int result = INT32_MAX;
int sum = 0;
int subLength = 0;
for(int j = 0; j < nums.size(); j++)
{
sum = sum + nums[j];
while(sum >= target)
{
subLength = j - i + 1;
result = result < subLength ? result : subLength;
sum = sum - nums[i];
i++;
}
}
return result == INT32_MAX ? 0 : result;
}
};
int main()
{
vector<int> nums;
nums.push_back(2);
nums.push_back(3);
nums.push_back(1);
nums.push_back(2);
nums.push_back(3);
nums.push_back(4);
int target = 7;
int result = minimum_size_subarray_sum::minSubArrayLen(target, nums);
cout << result << endl;
return 0;
}
将类内函数设置为静态static,就可以直接调用了,另外,在调用时要加上类名。
另外,补充:在C++中,“::”表示作用域,::前面是类名,后面是该类的成员名称,C++为避免不同的类有名称相同的成员而采用作用域的方式进行区分。