练习 9.28: 编写函数,接受一个 forward_list<string>和两个string共三个参数。函数应在链表中查找第一个string,并将第二个string 插入到紧接着第一个string之后的位置。若第一个string未在链表中,则将第二个string插入到链表末尾
#include<iostream>
#include<vector>
#include<string>
#include<deque>
#include<list>
#include<forward_list>
using namespace std;
void my_insert(forward_list<string> &f, const string &s1,const string &s2)
{
auto prev = f.before_begin();
auto curr = f.begin();
while (curr != f.end())
{
if (*curr == s1)
{ f.insert_after(curr, s2);
return;
}
else
{
prev = curr;
++curr;
}
}
f.insert_after(prev,s2);
return;
}//这里必须有return,Google很好用!
int main()
{
forward_list<string> my_vector{ "chen", "xun", "is", "an","student" };
my_insert(my_vector, "an", "excellent");
my_insert(my_vector, "student", ",oh yeah!");
for (auto &a : my_vector)
cout << a << ' ';
cout << endl;
return 0;
}