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没有定义。