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.