INF3105 — Structures de données et algorithmes
Automne 2016
* «Standard Template Library» ou «STL» est le nom de la bibliothèque originale. Les conteneurs de la STL ont depuis été standardisés dans la «bibliothèque standard de C++».
Les structures de données étudiées jusqu'à présent ont des implémentations équivalentes dans la bibliothèque standard de C++.
| Lib3105++ | 
      Bibliothèque standard de C++ | 
    
| Tableau | 
      std::vector | 
    
| Pile | 
      std::stack | 
    
| File | 
      std::queue | 
    
| Liste | 
      std::forward_list  (simplement chaînée) std::list (doublement chaînée)  | 
    
| ArbreAVL | 
      std::set  (arbre rouge-noir) | 
    
| ArbreMap | 
      std::map | 
    
Transcrivez, compilez et expérimentez les programmes suivants.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
    vector<string> tab;
    tab.push_back("un"); // tab.ajouter("un");
    tab.push_back("deux");
    tab.push_back("trois");
    tab.push_back("quatre");
    tab.push_back("cinq");
    
    vector<string> tab2 = tab;
    for(vector<string>::iterator iter=tab2.begin();iter!=tab2.end();++iter)
       std::cout << *iter << std::endl;
}
Pour compiler et tester :oug++ lab10a.cpp ./a.out
g++ -o lab10a lab10a.cpp ./lab10a
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    vector<string> tab;
    tab.push_back("un"); // tab.ajouter("un");
    tab.push_back("deux");
    tab.push_back("trois");
    tab.push_back("quatre");
    tab.push_back("cinq");
    
    sort(tab.begin(), tab.end());
    for(vector<string>::iterator iter=tab.begin();iter!=tab.end();++iter)
       std::cout << *iter << std::endl;
    return 0;
}
    
    
#include <iostream>
#include <string>
#include <set>
#include <algorithm>
using namespace std;
int main(){
    set<string> ensemble;
    ensemble.insert("un");
    ensemble.insert("deux");
    ensemble.insert("trois");
    ensemble.insert("quatre");
    ensemble.insert("cinq");
    
    for(set<string>::iterator iter=ensemble.begin();iter!=ensemble.end();++iter)
       std::cout << *iter << std::endl;
    return 0;
}
    
      #include <iostream>
#include <string>
#include <map>
using namespace std;
int main(){
    map<int, string> dictionnaire;
    dictionnaire[1] = "un";
    dictionnaire[2] = "deux";
    dictionnaire[3] = "trois";
    dictionnaire[4] = "quatre";
    dictionnaire[5] = "cinq";
    
    cout << "dictionnaire[5]=" << dictionnaire[5] << std::endl;
    cout << "dictionnaire[1]=" << dictionnaire[1] << std::endl;
    cout << "dictionnaire[3]=" << dictionnaire[3] << std::endl;
    cout << "dictionnaire[2]=" << dictionnaire[2] << std::endl;
    cout << "dictionnaire[4]=" << dictionnaire[4] << std::endl;
    
    cout << "---" << std::endl;
    for(map<int, string>::iterator iter=dictionnaire.begin();iter!=dictionnaire.end();++iter){
        cout << "dictionnaire[" << iter->first << "]=" << iter->second << std::endl;
    }
    return 0;
}
    
 
 
Écrivez un programme pour la question 4 de l'examen de mi-session 2012A. Basez-vous sur la réponse dans le solutionnaire, mais n'utilisez que des conteneurs de la STL.