// Demonstrating generic merge algorithm with an array, // a list, and a deque. #include #include #include #include #include #include list lst(char* s) // Return list containing the characters of s // (not including the terminating null). { list x; while (*s != '\0') x.push_back(*s++); return x; } deque deq(char* s) // Return deque containing the characters of s // (not including the terminating null). { deque x; while (*s != '\0') x.push_back(*s++); return x; } int main() { cout << "Demonstrating generic merge algorithm with " << "an array, a list, and a deque." << endl; char* s = "acegikm"; int len = strlen(s); list list1 = lst("bdfhjlnopqrstuvwxyz"); // Initialize deque1 with 26 copies of the letter x: deque deque1(26, 'x'); // Merge array s and list1, putting result in deque1: merge(&s[0], &s[len], list1.begin(), list1.end(), deque1.begin()); assert(deque1 == deq("abcdefghijklmnopqrstuvwxyz")); }