[ create a new paste ] login | about

Link: http://codepad.org/361yGEmH    [ raw code | output | fork ]

hurracane - C++, pasted on Dec 8:
struct Collection {
	FilmData* newFilm(std::string, std::string);
	Show* newShow(std::string, std::string);

	void addItem(FilmData* fd) { filmdata_.push_back(fd); }

	void removeItem(std::string);
	void removeMedium(std::string, std::string);
	void removeItem(FilmData*);

	std::vector<std::pair<std::string, std::string> > findRoles(const std::string) const;
	std::vector<std::pair<FilmData&, Show> >::iterator findShow(std::string);
	std::vector<std::string> findGenres(const std::string&) const;
	std::vector<std::string> findTitles(const std::string&) const;
	std::vector<FilmData*>::iterator findItem(std::string);

	std::vector<FilmData*> filmdata_;
	std::vector<Show*> shows_;
};

FilmData* Collection::newFilm(std::string title, std::string medium) {
	std::cout << "Filmdata for ''" << title << "'' unknown. Please insert data followed by a dot" << std::endl;
	std::string user_input;
	// Get all the movie data
	std::cin.clear();
	std::cin.sync();
	FilmData* new_film = new FilmData;
	new_film->addMedium(medium);
	new_film->title_ = title;
	while(getline(std::cin, user_input) && !user_input.empty()) {
		user_input >> *new_film;
	}
	// Get all the actors
	std::cout << "Please insert cast; role = actor" << std::endl;
	std::cin.clear();
	std::cin.sync();
	while(getline(std::cin, user_input) && user_input != "." && !user_input.empty()) {
		user_input >> *new_film;
	}
	std::cout << "Added " << new_film->title_ << "(" << new_film->year_ << ")" << std::endl;
	return new_film;
}
void Collection::removeItem(std::string title) {
	// Try to find the item, if found - entry will be defined. If not, it will be the null pointer.
	std::vector<FilmData*>::iterator it = findItem(title);
	if(it != filmdata_.end()) {
		std::cout << "Are you sure you want to remove " << title << " and " << (*it)->media_.size() << " media? (y/n)" << std::endl;
		std::string user_input;
		std::cin >> user_input;
		if(user_input == "y")
		{
			for(std::set<Medium*>::iterator it2 = (*it)->media_.begin(); it2 != (*it)->media_.end(); it2++)
				(*it)->removeMedium(**it2);
			filmdata_.erase(it);
			delete *it;
		}
	}
	else std::cout << "Could not find entry for " << title << std::endl;
}


Output:
1
2
Line 3: error: ISO C++ forbids declaration of 'FilmData' with no type
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: