C++ (c+;+;)带有函数和向量的模板

C++ (c+;+;)带有函数和向量的模板,c++,templates,vector,C++,Templates,Vector,以下代码无法运行。从我调试它的尝试来看,我猜我对如何使用带有函数和向量的模板有一些误解 template<typename T> T minT(std::vector<T> data){ T min = data[0]; for(int i=0; i< data.size(); i++){ if(data[i] < min){ min =data[i]; } } retur

以下代码无法运行。从我调试它的尝试来看,我猜我对如何使用带有函数和向量的模板有一些误解

template<typename T>
T minT(std::vector<T> data){
    T min = data[0];
    for(int i=0; i< data.size(); i++){
        if(data[i] < min){
            min =data[i];
        }
    }
    return min;
}


template<typename T>
void Hist(std::vector<T> data, T increment){
    T max = maxT<T>(data);
    T min = minT<T>(data);
}


int main(int argc, char** argv) {
    std::vector<int> v;

   Hist(v,2);

    return 0;
}
模板
T minT(标准::矢量数据){
T min=数据[0];
对于(int i=0;i
问题是:

  • 您没有定义
    maxT
    函数。
  • std::vector没有[0]元素,因为它从未被赋予值来构造自身或附加到自身上。
一旦我解决了这两个问题,代码就开始工作了<为了方便和正确,添加了代码>和


v
是空的,所以
数据[0]
是非法的。使用和怎么样?在你试图在其上构建
Hist
之前,你应该先测试
minT
。@Henri,这很公平,但我想知道问题是什么。maxT没有定义。