Bonjour,

J'ai un problème avec l’insertion d’élément dans un deque.

Les vars sont définis comme ça :
deque<Terrain> niv;
Terrain tmp;

On il trouve une erreur dans la ligne comme quoi il ne trouve pas :
niv.insert(0, tmp) ;
Je précise que le 0 c’est pour tester, ce sera un int.

L’erreur du compilateur, je comprend moyennement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 edit.cpp:199: error: no matching function for call to `std::deque<Terrain, std::allocator<Terrain> >::insert(int, Terrain&)'
[...]/deque.tcc:91: note: candidates are: typename std::deque<_Tp, _Alloc>::iterator std::deque<_Tp, _Alloc>::insert(typename std::_Deque_base<_Tp, _Alloc>::iterator, const _Tp&) [with _Tp = Terrain, _Alloc = std::allocator<Terrain>]
[...]/stl_deque.h:1084: note:                 void std::deque<_Tp, _Alloc>::insert(typename std::_Deque_base<_Tp, _Alloc>::iterator, size_t, const _Tp&) [with _Tp = Terrain, _Alloc = std::allocator<Terrain>]
J’ai été voir la doc de la STL la définition me paraît correspondre « iterator insert(iterator pos, const T& x) »

« void push_back(const T&) » fonctionne lui très bien

Merci d’avance