Maison > développement back-end > C++ > Comment puis-je extraire efficacement un sous-vecteur d'un vecteur C ?

Comment puis-je extraire efficacement un sous-vecteur d'un vecteur C ?

DDD
Libérer: 2024-12-05 20:50:12
original
474 Les gens l'ont consulté

How Can I Efficiently Extract a Subvector from a C   Vector?

Extraire efficacement un sous-vecteur d'un vecteur

Supposons que vous souhaitiez extraire une partie d'un vecteur, en créant un nouveau vecteur avec des éléments X à travers Y. En C avec le vecteur de bibliothèque standard, l'approche la plus simple consiste à utiliser des itérateurs :

vector<T>::const_iterator first = myVec.begin() + X;
vector<T>::const_iterator last = myVec.begin() + Y + 1;
vector<T> newVec(first, last);
Copier après la connexion

Cette opération a un Complexité temporelle O(N), où N est la taille du vecteur d'origine. Cependant, il est important de noter qu'il n'existe pas de moyen beaucoup plus efficace d'y parvenir en utilisant un vecteur.

Type de données STL alternatif

Si vous devez extraire des sous-vecteurs envisagez fréquemment d'utiliser un conteneur STL alternatif qui prend en charge une extraction de sous-vecteurs plus efficace. Une option est le deque, qui permet une insertion et une suppression efficaces d'éléments aux deux extrémités :

deque<T> myDeque;
deque<T> subDeque(myDeque.begin() + X, myDeque.begin() + Y + 1);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal