void IngredientMatcherDialog::addIngredient() { QList<Q3ListViewItem *> items = allIngListView->listView()->selectedItems(); if ( !items.isEmpty() ) { for (int i = 0; i < items.size(); ++i) { bool dup = false; for ( Q3ListViewItem *exists_it = ingListView->listView()->firstChild(); exists_it; exists_it = exists_it->nextSibling() ) { if ( exists_it->text( 0 ) == items[i]->text( 0 ) ) { dup = true; break; } } if ( !dup ) { Q3ListViewItem * new_item = new Q3CheckListItem( ingListView->listView(), items[i]->text( 0 ), Q3CheckListItem::CheckBox ); ingListView->listView() ->setSelected( new_item, true ); ingListView->listView() ->ensureItemVisible( new_item ); allIngListView->listView() ->setSelected( items[i], false ); IngredientList::iterator it = m_ingredientList.append( Ingredient( items[i]->text( 0 ), 0, Unit(), -1, items[i]->text( 1 ).toInt() ) ); m_item_ing_map.insert( new_item, it ); } } } }
void run_part_one() { std::string line; std::vector<Ingredient> ingredients; while (std::getline(std::cin, line)) { ingredients.push_back(Ingredient(line)); } std::cout << get_optimal_composition(ingredients) << std::endl; }
Ingredient* Refrigerator::getIngredient(std::string name, std::string unit) { Ingredient temp = Ingredient(name, unit); for (size_t i = 0; i < numberOfIngredients; i++) { if (ingredientArray[i] == temp) { return &ingredientArray[i]; } } return 0; }
void Refrigerator::addNewIngredient(const std::string name, const std::string unit, double initAmount = 0) { if (allocatedSize == numberOfIngredients) { Ingredient* tempArray = new Ingredient[allocatedSize += 10]; for (size_t i = 0; i < numberOfIngredients; i++) { tempArray[i] = ingredientArray[i]; } delete[] ingredientArray; ingredientArray = tempArray; } ingredientArray[numberOfIngredients++] = Ingredient(name, unit, initAmount); }
const char* Menu::calculateMethod(){ IngredientSet* pantry__ = IngredientSet::getPantry(); vector<Ingredient> tempIngs; string toBeReturned = ""; bool flag=false; for (int i = 0; i < smenu->recipes_->size(); i++) { Recipe* temp = (*smenu->recipes_)[i]; for (int j = 0; j < temp->ingredientSet_->size(); j++) { flag=false; for (int k = 0; k < tempIngs.size(); k++) { if(tempIngs[k].getName().compare((*temp->ingredientSet_)[j]->getName()) != 0) { } else{ flag = true; tempIngs[k].editAmount(0,( (*temp->ingredientSet_)[j]->getAmount() )); } } if(flag == false){ tempIngs.push_back(Ingredient(*(*temp->ingredientSet_)[j])); } } } for(int i = 0; i < tempIngs.size(); i++) { const char* str = tempIngs[i].getName().c_str(); if(pantry__->getIngredient(str) != NULL) { tempIngs[i].editSmallAmount(-1 * pantry__->getIngredient(str)->getAmount()); } } for(int i = 0; i < tempIngs.size(); i++) { if(tempIngs[i].getAmount() > 0) { string moreTemp=""; char str[12]; sprintf(str, "%d", tempIngs[i].getAmount()); moreTemp.append(str); string moreTemp2=""; char str2[12]; sprintf(str2, "%d", (tempIngs[i].getAmount()/tempIngs[i].getConversionFactor())); moreTemp2.append(str2); toBeReturned = toBeReturned + tempIngs[i].getName() + " "+ moreTemp2 + " " + tempIngs[i].getBigName() +" or "+ moreTemp + " " + tempIngs[i].getSmallName() + "\n"; } } sprintf(Ingredient::buffer,"%s",toBeReturned.c_str()); return Ingredient::buffer; }