65,179
社区成员




template<typename T> class max_subarray;//前置声明
template<typename T> std::istream &operator>>(std::istream &is, const max_subarray<T> &target)
{
is >> target.varray.push_back();
return is;
}
template<typename T>
class max_subarray
{
public:
friend std::istream &operator>> <T>(std::istream &is, const max_subarray<T> &target);
max_subarray() = default;//默认构造函数
pair<size_t,size_t> get_index() const;//保存索引对
T &get_max_sum() const;//获取器
private:
//工具函数
void set_index(const size_t startIndex,const size_t endIndex);//设置器
void set_max_sum(const T maxSum);//设置器
void find_max_every_subarray(const vector<T> &vArray, const size_t start);
void find_max_subarray(const vector<T> &vArray);
//私有成员
pair<size_t, size_t> index_range;
T max_sum;
vector<T> varray;
};
//实现
template<typename T>
pair<size_t, size_t> max_subarray<T>::get_index() const
{
return{ first, second };
}
template<typename T>
T &max_subarray<T>::get_max_sum() const
{
return max_sum;
}
template<typename T>
void max_subarray<T>::set_index(size_t startIndex, size_t endIndex)
{
index_range.first = startIndex;
index_range.second = endIndex;
}
#include <iostream>
#include <vector>
using namespace std;
template<typename T> class max_subarray;//前置声明
template<typename T> std::istream &operator>>(std::istream &is, const max_subarray<T> &target)
{
is >> target.varray.push_back();
return is;
}
template<typename T>
class max_subarray
{
public:
friend std::istream &operator>> <T>(std::istream &is, const max_subarray<T> &target);
// max_subarray() = default;//默认构造函数
pair<size_t,size_t> get_index() const;//保存索引对
T &get_max_sum() const;//获取器
private:
//工具函数
void set_index(const size_t startIndex, const size_t endIndex);//设置器
void set_max_sum(const T maxSum);//设置器
void find_max_every_subarray(const vector<T> &vArray, const size_t start);
void find_max_subarray(const vector<T> &vArray);
//私有成员
pair<size_t, size_t> index_range;
T max_sum;
vector<T> vArray;
};
//实现
template<typename T>
pair<size_t, size_t> max_subarray<T>::get_index() const
{
return{ first, second };
}
template<typename T>
T &max_subarray<T>::get_max_sum() const
{
return max_sum;
}
template<typename T>
void max_subarray<T>::set_index(size_t startIndex, size_t endIndex)
{
index_range.first = startIndex;
index_range.second = endIndex;
}
int main()
{
return 0;
}
你新建一个控制台程序,用我的代码替换下看看报错没