Exemples d'utilisation de la liste STL en C++

PHPz
Libérer: 2017-04-12 15:03:34
original
1847 Les gens l'ont consulté

Cet article présente principalement l'explication détaillée et des exemples simples de la liste STL en C++

<.> 1. L'implémentation interne de List : est une liste doublement chaînée, qui peut effectuer efficacement l'insertion et la suppression, mais ne peut pas effectuer d'accès aléatoire


2. programme :


Photo du résultat d'exécution :

#include "stdafx.h" 
#include <iostream> 
#include <list> 
#include <iterator> 
#include <algorithm> 
using namespace std; 
const int num[5] = {1,3,2,4,5}; 
bool status(const int & value) 
{ 
 return value>6?true:false; 
} 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
 list<int> list1; 
 copy(num,num+5,back_insert_iterator<list<int>>(list1)); 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list1.sort(greater<int>());//5 4 3 2 1 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list<int>::iterator it = list1.begin(); 
 while (it != list1.end()) 
 { 
  (*it) += 2; 
  it++; 
 } 
 //7 6 5 4 3 
 list<int>::reverse_iterator re_it = list1.rbegin(); 
 cout<<"从后向前输出: "; 
 while (re_it != list1.rend()) 
 { 
  cout<<*re_it<<" "; 
  re_it++; 
 } 
 cout<<endl; 
 list1.reverse();// 3 4 5 6 7 
 list1.push_back(8);//3 4 5 6 7 8 
 list1.pop_front();//4 5 6 7 8 
 list1.remove(6);//4 5 7 8 
 list1.remove_if(status);// 4 5 
 list1.resize(4);// 4 5 0 0 
 list1.resize(6,1);// 4 5 0 0 1 1 
 list1.unique();//4 5 0 1 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list1.clear(); 
 cout<<"当前list1含有元素个数:"<<list1.size()<<endl; 
 list1.push_back(7);//list1:7 
 list<int> list2(3,2);//2 2 2 
 list2.merge(list1,greater<int>());//list2: 7 2 2 2 
 list2.insert(++list2.begin(),3);//list2: 7 3 2 2 2 
 list2.swap(list1);//list1:7 3 2 2 2 list2:empty 
 list1.erase(++list1.begin(),list1.end());// 7 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 system("pause"); 
}
Copier après la connexion

3. Méthode de liste

tr >pop_back
liste des membres
Description

list成员

说明

constructor

构造函数

destructor

析构函数

operator=

赋值重载运算符

assign

分配值

front

返回第一个元素的引用

back

返回最后一元素的引用

begin

返回第一个元素的iterator

end

返回最后一个元素的下一位置的iterator

rbegin

返回链表最后一元素的后向指针reverse_iterator

rend

返回链表第一元素的下一位置的reverse_iterator

push_back

增加一个数据到链表尾

push_front

增加一个数据到链表头

pop_back

删除链表尾的一个元素

pop_front

删除链表头的一元素

clear

删除所有元素

erase

删除一个元素或一个区域的元素(两个重载)

remove 

删除链表中匹配值的元素(匹配元素全部删除)

remove_if

删除条件满足的元素(遍历一次链表),参数为自定义的回调函数

empty

判断是否链表为空

max_size

返回链表最大可能长度

size

返回链表中元素个数

resize

重新定义链表长度(两重载函数)

reverse

反转链表

sort 

对链表排序,默认升序

merge

合并两个有序链表并使之有序

splice 

对两个链表进行结合(三个重载函数) 结合后第二个链表清空

insert

在指定位置插入一个或多个元素(三个重载函数)

swap

交换两个链表(两个重载)

unique 

删除相邻重复元素 

Constructeur
Constructeur
destructeur Destructeur
operator= Opérateur d'affectation surchargé
attribuer Attribuer une valeur
front Renvoie une référence au premier élément
retour Renvoyer la référence du dernier élément
begin Renvoyer l'itérateur du premier élément
end Renvoie l'itérateur à la position suivante du dernier élément
rbegin Renvoie le pointeur vers l'arrière du dernier élément de la liste chaînée reverse_iterator
rend Renvoie le pointeur arrière du premier élément de la liste chaînée Le reverse_iterator à la position suivante
push_back Ajoute une donnée à la fin de la liste chaînée
push_front Ajoute une donnée à l'en-tête de la liste chaînée
Supprimer un élément à la fin de la liste chaînée
pop_front Supprimer un élément en tête de liste chaînée
effacer Supprimer tous les éléments
effacer Supprimer un élément ou une plage d'éléments (deux surcharges)
supprimer Supprimer les éléments avec les valeurs correspondantes dans la liste chaînée (tous les éléments correspondants sont supprimés)
remove_if Supprimer les éléments qui remplissent les conditions (parcourir la liste chaînée une fois), le paramètre est une fonction de rappel personnalisée
vide Déterminer si la liste chaînée est vide
max_size Renvoie la longueur maximale possible de la liste chaînée
taille Renvoie le nombre d'éléments dans la liste chaînée
redimensionner Redéfinir la longueur de la liste chaînée (deux fonctions surchargées)
inverser Inverser la liste chaînée
trier Trier la liste chaînée par ordre croissant par défaut
fusionner Fusionner deux listes chaînées ordonnées et les rendre ordonnées
épissure Combinez deux listes chaînées (trois fonctions surchargées) et effacez la deuxième liste chaînée après avoir combiné
insert Insérer un ou plusieurs éléments à la position spécifiée (trois fonctions surchargées)
swap Échangez deux listes chaînées (deux surcharges)
unique Supprimer les éléments adjacents en double

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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!