You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.4 KiB
C++

A list splicing example.
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
list<string> sentence;
list<string> phrase;
list<string>::iterator p;
string s1[] = {"A", "B", ""};
string s2[] = {"C", "D", ""};
string s3[] = {"E", "F", "G.", ""};
string s4[] = {"A", "C,", "E", "G", ""};
int i;
for(i = 0; s1[ i ] != ""; i++)
sentence.push_back(s1[i]);
for(i = 0; s2[ i ] != ""; i++)
phrase.push_back(s2[ i ]);
cout << "Original sentence:\n";
p = sentence.begin();
while(p != sentence.end())
cout << *p++ << " ";
cout << endl;
sentence.splice(sentence.begin(), phrase);
cout << "Sentence after splicing at the front:\n";
p = sentence.begin();
while(p != sentence.end())
cout << *p++ << " ";
cout << endl;
for(i = 0; s3[ i ] != ""; i++)
phrase.push_back(s3[ i ]);
sentence.splice(sentence.end(), phrase);
cout << "Sentence after splicing at the end:\n";
p = sentence.begin();
while(p != sentence.end())
cout << *p++ << " ";
cout << endl;
for(i = 0; s4[ i ] != ""; i++)
phrase.push_back(s4[ i ]);
p = find(sentence.begin(), sentence.end(), "or");
sentence.splice(p, phrase);
cout << "Sentence after splicing in the middle:\n";
p = sentence.begin();
while(p != sentence.end())
cout << *p++ << " ";
return 0;
}