未解析的重载函数类型,克隆for_each
Unresolved overloaded function type, clone for_each
在下面的代码中,我克隆了<algorithm>
中定义的for_each
函数(我相信)。唯一的问题是对于第三个参数,它是我制作的 void 函数,我得到了调用的不匹配函数......未解析的重载函数类型。有人可以对此事有所了解吗?
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
void fill(int& n) { //The custom made function, a simple rewrite,
if (n < 100) //which is why I passed an int reference
n = 100;
}
template <class Iterator, class Function> //Clone for_each
void clone_for_each(Iterator first, Iterator last, Function f) {
while( first != last) {
f(*first);
first++;
}
}
int main (int argc, char const* argv[])
{
//Just inputing data and printing it out
//This part is fine up until...
int n;
cout << "Unesite broj vrsta artikala: ";
cin >> n;
vector<string> names;
vector<int> quantity;
cout << "Unesite naziv artikla potom njegovu kolicinu: " << endl;
for (int i = 0; i < n; i++) {
string name;
int amount;
cout << "Unesite naziv: ";
cin >> name;
cout << endl;
cout << "Unesite kolicinu: ";
cin >> amount;
cout << endl;
names.push_back(name);
quantity.push_back(amount);
}
cout << "Raspolozivi artikli: " << endl;
vector<string>::iterator itNames = names.begin();
vector<int>::iterator itQuantity = quantity.begin();
for(itNames, itQuantity; itNames != names.end(), itQuantity != quantity.end(); itNames++, itQuantity++ )
cout << *itNames << " " << *itQuantity << endl;
cout << "Artikli nakon dopune: " << endl;
//right here, which is where I called for clone_for_each
clone_for_each(quantity.begin(), quantity.end(), fill);
return 0;
}
既然你using namespace std
,fill
clone_for_each(quantity.begin(), quantity.end(), fill);
应该是<algorithm>
std::fill()
,不适合clone_for_each()
.
看看为什么using namespace std
被认为是有害的?
相关文章:
- "error: no matching function for call to"构造函数错误
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何在C++中从两个单独的for循环中添加两个数组
- 在Linux for Windows上编译C++代码时出错
- 调用专用模板时出错"no matching function for call to [...]"
- 为什么我的for循环不能正确获取argv
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 在基于范围的for循环中使用结构化绑定声明
- 通过for循环使用用户输入填充列表
- 使用for循环检查数组中的重复项
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 正在使用for循环创建QScatterSerie
- Python中的for循环与C++有何不同
- std::memory_order for std::atomic:<T>:wait
- 在更改for循环的第三部分后,未使用for循环结果
- 在 for 循环中查找问题时遇到困难
- 嵌套for循环C++的问题(初学者)
- 如何用for循环在c++中生成单词三角形