C++的list合并两个链表

举个栗子
在这里插入图片描述
思路:我们把两个list链表分别存储非数字字符和数字字符,最后并入第三个链表
这里的合并其实就是插入

#include<iostream>
#include<list>
using namespace std;
int main()
{
	string s;
	cin>>s;//讨论数字和非数字字符的关系 
	list<char> s1,s2,s3;//两个链表分别存储非字符和字符的关系 
	list<char>::iterator it;//迭代器遍历 
	for(int i=0;i<s.length();++i)//遍历一遍 
	{
		if(s[i]<='9'&&s[i]>='0') 
		{
			s2.push_back(s[i]);// 放入s2
		}
		else
		{
			s1.push_back(s[i]);//放入s1; 
		}
	}
	for(it=s1.begin();it!=s1.end();++it)
	{
		s3.push_back(*it);
	}
	for(it=s2.begin();it!=s2.end();++it)
	{
		s3.push_back(*it);
	}//s1与s2加入s3 
	for(it=s3.begin();it!=s3.end();++it)
	{
		cout<<*it;//输出 
	}
	return 0;
}

在这里插入图片描述
ok,没问题,合并就是插入的思想,我们还可以将s2插入s1的末尾