///////////////////////////////////////////////////////////////////// // NameTable.cpp - brief demo of STL constructs for name table // // // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 2005 // ///////////////////////////////////////////////////////////////////// #include #include "nameTable.h" //----< define static table >---------------------------------------- // // remove the comment, below, if you want the table to be static // // nameTable::NameTable nameTable::_nameTable; //----< save file and possibly name in nameTable >------------------- void nameTable::save(conStrRef name, conStrRef file) { _nameTable[name].insert(file); } //----< display contents of name table >----------------------------- void nameTable::show() { std::cout << "\n NameTable Contents:" << "\n ====================="; NameTable::iterator it = _nameTable.begin(); while(it!=_nameTable.end()) { std::cout << "\n " << (it->first).c_str() << " : "; FileSet::iterator fit = it->second.begin(); while(fit != it->second.end()) { std::cout << (*fit).c_str() << " "; ++fit; } ++it; } std::cout << "\n\n"; } #ifdef TEST_NAMETABLE //----< test stub >-------------------------------------------------- int main() { nameTable nt; nt.save("foobar","first"); nt.save("foobar","second"); nt.save("feebar","third"); std::cout << "\n nt.size() = " << nt.size() << std::endl; nt.show(); } #endif