コード例 #1
0
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);
	}
}
コード例 #2
0
ファイル: Library.cpp プロジェクト: Gabers-/csfiles
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);
}
コード例 #3
0
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;
}
コード例 #4
0
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;
}
コード例 #5
0
ファイル: Library.cpp プロジェクト: Gabers-/csfiles
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;
}
コード例 #6
0
ファイル: Library.cpp プロジェクト: Gabers-/csfiles
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;
}
コード例 #7
0
        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);
        }
}
コード例 #8
0
ファイル: Library.cpp プロジェクト: Gabers-/csfiles
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;
}
コード例 #9
0
ファイル: Library.cpp プロジェクト: Gabers-/csfiles
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);
}
コード例 #10
0
ファイル: Library.cpp プロジェクト: Gabers-/csfiles
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);
}