0x0FA5E636 (ucrtbased.dll) (set.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。 这是哪里错了
#include<iostream>
#include<set>
#include<vector>
#include<string>
using namespace std;
string find_book(vector<string> & abooklist, set<string> &abooks);
int main()
{
vector <string> booklist;// the books I wanna read
booklist.push_back("a");
booklist.push_back("b");
booklist.push_back("c");
set<string> books;//the books I have read
books.insert("a");
books.insert("c");
books.insert("x");
books.insert("g");
cout<<"the book for you : "<<find_book(booklist, books)<<endl;
getchar();
return 0;
}
string find_book( vector<string> & abooklist, set<string> &abooks )
{
//find a book from booklist that can not be found in books
vector<string>::iterator iter = abooklist.begin();
while (iter != (abooklist.end()))
{
if (!abooks.count(*iter))
{
string temp=*iter;
abooks.insert(*iter);
abooklist.erase(iter);//remove the book found int booklist
//and put it in books
return temp;
}
iter++;
}
return "not found";
}