【发布时间】:2017-02-08 18:03:03
【问题描述】:
我正在学习 Lipmann,我只是在学习。我在这里尝试编写一个代码,该代码将返回向量中的最小元素。当我在 Codeblocks 中编译我的代码时,它说:“模板声明不能出现在块范围内”。代码如下:
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
template <class elemType>
elemType save;
elemType min (const std::vector<elemType> &vec) {
std::vector<elemType>::iterator it = vec.begin(), end_it = vec.end();
std::vector<elemType>::iterator iter = std::next(it, 1);
for ( ; it != end_it; it++ ) {
if ( *it < *(it + 1) ) {
save = *it;
}
if (save < *it) {
save = *it;
}
}
};
int massiv[10] = {35, 66, 98, 15, 32, 41, 24, 90, 55, 100};
std::vector<int> vec_train(massiv,massiv+10);
min(vec_train);
return 0;
}
【问题讨论】:
-
其实你可以用
std::min_element. -
我认为这里的重点是 OP 试图了解如何实现这样的函数模板。
标签: c++ vector codeblocks