int main(void) { ItemSet a; a.insert("A"); a.insert("B"); a.insert("C"); if(a.contains(string("B"))) { cout << "contains B" << endl; } if(a.contains(string("D"))) { cout << "contains D" << endl; } if(a.contains(string("A"))) { cout << "contains A" << endl; } for(auto & i: a.subItemSets()) { cout << "-> "; for(auto &j: i->getItemSet()) { cout << j.first << " "; } cout << endl; delete(i); } }
void Library::addKeywordsForItem(const Item* const item, int nKeywords, ...) { // the code in this function demonstrates how to handle a vararg in C++ va_list keywords; char *keyword; set<string> *itemsKeywords = (set<string>*)(&item->getKeywords()); va_start(keywords, nKeywords); for (int i = 0; i < nKeywords; i++) { keyword = va_arg(keywords, char*); itemsKeywords->insert(keyword); if (byKey.find(keyword) != byKey.end()) { byKey[keyword].insert(item); } else{ ItemSet* temp = new ItemSet; temp->insert(item); byKey.insert(pair<string, ItemSet*>(item, temp)); } } va_end(keywords); }
ItemSet ReferenceSpatialCache::FindIntersectingItems(const BPoint &point) const { ItemSet res; ItemSet::const_iterator it = fItems.begin(); for(; it != fItems.end(); it++) { if ((*it)->Frame().Contains(point)) res.insert(*it); } return res; }
ItemSet ReferenceSpatialCache::FindIntersectingItems(const BRect &rect) const { printf("ReferenceSpatialCache::FindIntersectingItems()"); bigtime_t startTime = system_time(); ItemSet res; ItemSet::const_iterator it = fItems.begin(); for(; it != fItems.end(); it++) { if ((*it)->Frame().Intersects(rect)) res.insert(*it); } bigtime_t time = system_time() - startTime; printf(" %lluµs\n", time); return res; }
const Item* Library::addMusicAlbum(const string& title, const string& band, const int nSongs) { Item * album = new MusicAlbum(band, nSongs, title); AlbumList.insert(album); MasterList.insert(album); if (byBand.find(band) != byBand.end()) { byBand[band].insert(album); } else{ ItemSet* temp = new ItemSet; temp->insert(album); byBand.insert(pair<string, ItemSet*>(album, temp)); } return album; }
const Item* Library::addBook(const string& title, const string& author, const int nPages) { Item * book = new Book(author, nPages, title); BookList.insert(book); MasterList.insert(book); if (byAuthor.find(author) != byAuthor.end()) { byAuthor[author].insert(book); } else{ ItemSet* temp = new ItemSet; temp->insert(book); byAuthor.insert(pair<string, ItemSet>(author, temp)); } return book; }
void CLxItemSelection::GetSet ( ItemSet &set) { CLxUser_Item item; LXtScanInfoID scan; void *pkt; set.clear (); scan = 0; while (scan = srv_sel.ScanLoop (scan, sel_ID, &pkt)) { pkt_trans.GetItem (pkt, item); if (Include (item)) set.insert (item); } }
const Item* Library::addMovie(const string& title, const string& director, const int nScenes) { Item * movie = new Movie(director, nScenes, title); BookList.insert(movie); MasterList.insert(movie); if (byDirector.find(director) != byDirector.end()) { byDirector[director].insert(movie); } else{ ItemSet* temp = new ItemSet; temp->insert(movie); byDirector.insert(pair<string, ItemSet*>(director, temp)); } return movie; }
void Library::addBandMembers(const Item* const musicAlbum, const int nBandMembers, ...) { va_list members; char *member; set<string> itemsMembers = static_cast<const MusicAlbum*>(musicAlbum)->getMembers(); va_start(members, nBandMembers); for (int i = 0; i < nBandMembers; i++) { member = va_arg(members, char*); itemsMembers.insert(member); if (byMusician.find(member) != byMusician.end()) { byMusician[member].insert(musicAlbum); } else{ ItemSet* temp = new ItemSet; temp->insert(musicAlbum); byMusician.insert(pair<string, ItemSet*>(member, temp)); } } va_end(members); }
void Library::addCastMembers(const Item* const movie, const int nCastMembers, ...) { va_list members; char *member; set<string> itemsMembers = static_cast<const Movie*>(movie)->getCast(); va_start(members, nCastMembers); for (int i = 0; i < nCastMembers; i++) { member = va_arg(members, char*); itemsMembers.insert(member); if (byCastMember.find(member) != byCastMember.end()) { byCastMember[member].insert(movie); } else{ ItemSet* temp = new ItemSet; temp->insert(movie); byCastMember.insert(pair<string, ItemSet*>(member, temp)); } } va_end(members); }