调用没有匹配函数,如何修复
no matching function for call to, how to fix it?
int main()
{
map<string, int> M;
vector<string> V;
set<string> S;
ifstream inFile("sample_doc.txt");
copy( istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(V) );
ifstream inFile2("stopwords.txt");
copy( istream_iterator<string>(inFile2), istream_iterator<string>(), inserter( S, S.begin() ) );
for_each( V.begin(), V.end(), [&](string & s){ S.count(s) == 0 ? M[s]++ : true; } );
}
在 for_each 语句中,当我传入上面的 lambda 函数时,它给了我以下错误。
error: no matching function for call to ‘for_each(std::vector<std::basic_string<char> >::iterator, std::vector<std::basic_string<char> >::iterator, main()::__lambda0)’
for_each( V.begin(), V.end(), [&](string & s){ S.count(s) == 0 ? M[s]++ : true; } );
有人可以告诉我如何解决它吗?非常感谢。
这是基于VS2017构建的,也许您忘记了一些标题?
#include <map>
#include <algorithm>
#include <set>
#include <iterator>
#include <string>
#include <vector>
#include <iostream>
#include <fstream>
void foo()
{
using namespace std;
map<string, int> M;
vector<string> V;
set<string> S;
ifstream inFile("sample_doc.txt");
copy(istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(V));
ifstream inFile2("stopwords.txt");
copy(istream_iterator<string>(inFile2), istream_iterator<string>(), inserter(S, S.begin()));
for_each(V.begin(), V.end(), [&](string & s) { S.count(s) == 0 ? M[s]++ : true; });
}
相关文章:
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何修复函数样式强制转换或类型构造的预期"("?
- 函数之前的预期初始值设定项(易于修复?
- 如何修复加载图标()函数不显示图标?
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 使用复制构造函数修复浅拷贝
- 如何修复函数中的 fstream 文件输入以将正确的信息存储在结构数组中?
- 如何修复递归函数导致的堆栈溢出错误?C++
- 在C++中使用 4 个交换函数修复程序
- C++ 模板类无法修复 ostream 和 istream 函数
- 尝试通过多个函数移动数组,但遇到了我不知道如何修复的错误
- 无法在需要对象展开修复程序的函数中使用__try
- 如何修复我的函数 popFront 为我的列表?
- "virtual"对C++析构函数有何影响?
- 如何修复"没有重载函数需要 2 个参数"错误C++
- 如何修复"未解析的外部符号"公共:void__thiscall canoid::getinput(void)"(?Getinput@Canoid@@QAEXXZ) 在函数 _main C++ 中引用
- 在结构函数之间传递文件路径 C++ 编辑:修复LNK2019错误
- 如何修复找不到匹配的重载函数?
- 如何修复"调用 'strtok 没有匹配函数
- C++ 友元函数在内存位置上有何不同?