我在 l_vector.begin()
和 l_vector.end
上不断收到“ Unresolved 识别”错误,特别是在 begin
和 end
函数,为什么它不能识别这些简单的 vector 函数?
#include <cstdlib>
#include <iostream>
#include <ctime>
#include <vector>
#include <string>
using namespace std;
// function prototype
int FindIndexOfLargest(vector<int> l_vector);
int main()
{
int FindIndexOfLargest();
return 0;
}
//function definition
int FindIndexOfLargest(vector<int> l_vector)
{
vector<int>:: const_iterator iter;
int current_max_location = 0;
int current_max = 0;
for(iter = l_vector.begin(); iter != l_vector.end(); ++iter)
{
if(*iter > current_max)
{
current_max_location = iter;
}
return current_max;
}
}
最佳答案
我看到编译失败的几个原因。
int FindIndexOfLargest();
你必须传递一个 std::vector <int>
在 main()
中调用此函数时.
最后,你的函数 int FindIndexOfLargest(vector<int> l_vector)
必须返回 int
值(value)。
编写此函数的另一种方法是使用 std::max_element和 std::distance .
std::size_t FindIndexOfLargest(const std::vector <int> &input)
{
std::vector<int>::const_iterator max_value =
std::max_element(input.cbegin(), input.cend());
if (max_value != input.cend()) {
return std::distance (input.cbegin(), max_value);
}
// Otherwise, throw an expection or return an error value here.
}
关于c++ - .begin() 和 .end() 上未解析的标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36228032/