--- UnitTest.cpp 2004/05/14 06:17:43 6 +++ UnitTest.cpp 2004/05/14 20:57:49 10 @@ -10,6 +10,23 @@ using namespace std; +template +bool contains(const Type& value, DoublyLinkedList& list) +{ + for (Iterator itor(list.iterator()); !itor.end(); itor++) + { + if (*itor == value) return true; + } + + return false; +} + +class VowelVisitor : public Visitor +{ +public: + void visit(const string& value) { if (value.find_first_of("aAeEiIoOuU") == 0) cout << value << '\n'; } +}; + int main(int argc, char* argv[]) { cout.setf(ios_base::boolalpha); @@ -21,6 +38,8 @@ int main(int argc, char* argv[]) list.addFront(4); list.addBack(5); + // 4 1 2 5 + cout << "list.contains(1) = " << list.contains(1) << '\n' << "list.contains(2) = " << list.contains(2) << '\n' << "list.contains(3) = " << list.contains(3) << '\n' @@ -29,7 +48,35 @@ int main(int argc, char* argv[]) list.removeFirst(2); - cout << "list.contains(2) = " << list.contains(2) << '\n'; + // 4 1 5 + + cout << "list.contains(2) = " << list.contains(2) << '\n' + << "list.contains(5) = " << list.contains(5) << '\n'; + + for (Iterator itor(list.iterator()); !itor.end(); itor++) + { + cout << *itor << '\n'; + } + + cout << "contains(3, list) = " << contains(3, list) << '\n' + << "contains(4, list) = " << contains(4, list) << '\n'; + + DoublyLinkedList words; + + words.addFront("Douglas"); + words.addBack("Allen"); + words.addFront("Edward"); + words.addBack("attack"); + words.addFront("Thrift"); + + for (Iterator itor(words.iterator()); !itor.end(); itor++) + { + if (itor->find_first_of("aAeEiIoOuU") == 0) cout << *itor << '\n'; + } + + VowelVisitor vowels; + + words.accept(dynamic_cast*>(&vowels)); return 0; }