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.
Pour compiler et tester :#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; }
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.