Salut!

J'ai lu sur plusieurs articles que les contenaires de la STL sont des capsules RAII et qu'il est important de les utiliser en c++.
Si j'ai bien compris, en gros, ça signifie que si je fait ça :

Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
std::vector<Objet*> list = {new Objet(), new Objet(), ...};
std::vector<Objet*> list2 = list;

Les objects contenu dans les listes seront bien détruis lorsque les 2 listes (list et list2) seront détruites ?

Sinon que se passerais t'il si je fais ça ?
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Objet* o1 = new Objet();
{
std::vector<Objet*> list = {o1, new Objet(), ...};
std::vector<Objet*> list2 = list;
}
//Utilisation de o1 -> crash ?

Le std::vector agit t'il comme un delete ou bien faut t'il delete tout les éléments du std::vector manuellement ?

Bon j'ai eu ma réponse ici (ce code ne crash pas)

Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
int main()
    std::string* s = new std::string("Hello!");
    {
        std::vector<std::string*> list = {s, new std::string("world")};
    }
    std::cout<<*s<<std::endl;
return 0;

Donc bon je ne comprend pas trop bien comment les contenaires de la STL delete les objets.