c++ primer 第五版习题答案9.28

  练习 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;
}


你可能感兴趣的:(C++,vector,习题答案,primer第五版习题答案,c++primer第五版答案)