Merci, j'ai encore un peu de mal à percevoir la subtilité du "absolute" car je débute en delphi mais celui-ci m'arrange bien.
Je suis maintenant confronté au problème suivant :
Est-possible d'implémenter de façon performante un comportement basé sur le modèle suivant issu de la classe vector de c++ :
insert ( iterator position, InputIterator first, InputIterator last );
par exemple:
1 2 3
|
int arrayl [] = { 1,2,3};
myvector.insert (myvector.begin(), arrayl, myarrayl+3); |
Il s'agit d'insérer dans la liste à une position donnée (définit par un iterator en C++) des éléments compris entre first et last.
J'ai penser à la solution suivante mais celle-ci ne me semble ni esthetique ni rapide :
Supposons que l'intervalle [[first,last]] soit de longueur n, alors ma solution première, intuitivement serait d'appeller n fois la procédure
Insert(Index: Integer; Item: Pointer); de la classe TList.
Cependant, à chaque appel de Insert, il risque, Capacity et Count vont être incrémentée et les éléments de la liste après position vont être décalés. J'imagine que ça va être très couteux en temps ? Alors comment faire? Devrais-je utiliser une autre structure de donnée (sachant que cette dernière ne dois pas prendre plus de mémoire que la TList (impossible par exemple d'utiliser des listes chainées)) ?
PS: pas évident de se mettre à un nouveau langage !
Partager