Qt C++ How to use QList< >::const_iterator? -
i iterating through list , want use const_iterator. don't know how that! until used iterator , implemented function way. can me use const_iterator?
void mainwindow::populate(const qlist<vehicle> &vehicles) { int j = 0; qlistiterator<vehicle> iter(vehicles); while(iter.hasnext()){ vehicle car = iter.next(); //set car qstring makeandmodel = car.getgeneraldata().getmake() + car.getgeneraldata().getmodel(); qstandarditem *mandm = new qstandarditem(qstring(makeandmodel)); mandm->seteditable(false); model->setitem(j,0,mandm); //set type qstandarditem *type = new qstandarditem(qstring(car.getgeneraldata().gettype())); type->seteditable(false); model->setitem(j,1,type); //set mileage qstring mileagestring = qstring::number(car.getgeneraldata().getmileage()); qstandarditem *mileage = new qstandarditem(qstring(mileagestring)); mileage->seteditable(false); model->setitem(j,2,mileage); //set year qstring yearstring = qstring::number(car.getgeneraldata().getyear()); qstandarditem *year = new qstandarditem(qstring(yearstring)); year->seteditable(false); model->setitem(j,3,year); //set registration qstring regstring = vehiclehelper::convertbooltostring(car.getregistration().isregistered()); qstandarditem *regdate = new qstandarditem(qstring(regstring)); regdate->seteditable(false); model->setitem(j,4,regdate); j++; } }
some other variants iterating qlist:
using constiterator/const_iterator:
qlist<vehicle>::constiterator = vehicles.constbegin(); ( ; != vehicles.constend(); ++it ) { const vehicle& vehicle = *it; ... }
q_foreach (equivalent foreach
):
q_foreach (const vehicle& vehicle, vehicles) { ... }
or stl pre-c++11 way:
std::for_each(vehicles.begin(), vehicles.end(), somefunction())
where somefunction unary function or functor taking vehicle argument.
if can use c++11 features (depends on compilers want support), can use range-based loop:
for ( auto vehicle : vehicles ) { ... }
Comments
Post a Comment