[Kde-devel-es] Modificando un elemento de un "QValueList"

Miguel kde-devel-es@mail.kde.org
Fri, 17 Jan 2003 21:40:12 +0100


Hi,

> Buenos dias a todos.
> Llevo un par de d=EDas d=E1ndole vueltas al tema y no consigo que me
> funcione... =BFAlguien me puede explicar, por favor, como modificar un
> elemento de un QValueList???
>
> Ahora... quiero modificarlo... y no no he encontrado un metodo que lo
> haga... as=ED que me veo buscando el elemento por alg=FAn campo, el pri=
mero que
> es un n=FAmero, por ejemplo, y de ah=ED extraer la direcci=F3n y luego =
modificar,
> pero... =BFC=F3mo se hace eso?

No entiendo muy bien la pregunta, para acceder o modificar  los elementos=
=20
de la lista usa un iterador,=20
ejemplo de la ayuda de Qt.

-------------8x-------------------8x---------8x----------------------
 typedef QValueList<Employee> EmployeeList;
    EmployeeList list;

    list.append( Employee("John", "Doe", 50000) );
    list.append( Employee("Jane", "Williams", 80000) );
    list.append( Employee("Tom", "Jones", 60000) );

    Employee mary( "Mary", "Hawthorne", 90000 );
    list.append( mary );
    mary.setSalary( 100000 );

    EmployeeList::iterator it;
    for ( it =3D list.begin(); it !=3D list.end(); ++it )
        cout << (*it).surname().latin1() << ", " <<
                (*it).forename().latin1() << " earns " <<
                (*it).salary() << endl;

-------------8x-------------------8x---------8x----------------------

NOTA: No es conveniente utilizar un qvaluelist, en la mayoria de los
casos es mejor usar un QPtrList , porque qvaluelist esta orientado
a guardar listas de valores, de modo que consume mas
memoria y recursos. Si tu clase qso es grande tendras una
penalizacion en el rendimiento.
Cuando haces un  LogBook( append( Qso(etc,etc) ) ),
estas creando 2 objetos tipo Qso:
1.  Se crea el objeto Qso(etc,etc)
2. Despues el append crea una COPIA del objeto Qso recien=20
creado que es el que se a=F1ade a la lista.
3. Se destruye el objeto Qso inicial.

Salud2 !!!!