Klasa dynamicznej tablicy(kontener) deque C++

0

Witam,
mam problem z klasa dynamicznej tablicy (deque)
Mianowicie napisałem program :

#include <iostream>			
#include <cstdio>	
#include <cmath>
#include <vector>	
#include <deque>
#include <algorithm>
using namespace std;       		

int main()				
{
vector <int> tablica_1(10);
vector <int> tablica_2(10,10);
deque <int> tablica_3;
tablica_1.push_back (1);
tablica_1.push_back (2);
tablica_1.push_back (3);
cout<<"11 element tablicy vector ma wartosc : "<<tablica_1[12]<<endl;
tablica_1[0]=123;
cout<<"1 element tablicy vector ma wartosc : "<<tablica_1[0]<<endl;
tablica_1.at(1)=12345;
cout<<"2 element tablicy vector ma wartosc : "<<tablica_1.at(1)<<endl;

cout<<"Tablica_1 ta zawiera : "<<tablica_1.size()<<" elementow"<<endl;
cout<<"Tablica_2 ta zawiera : "<<tablica_2.size()<<" elementow"<<endl;
tablica_2.pop_back();
cout<<"Tablica_2 po redukcji zawiera : "<<tablica_2.size()<<" elementow"<<endl;
tablica_3.push_back(8);
tablica_3.push_front(1);
cout<<"1 element tablicy 3 ma wartosc : " <<tablica_3[0]<<endl;
tablica_3.push_front(3);
cout<<"Wartoscia nr1 tablicy 3 po dodaniu jest : " << tablica_3[0]<<endl;
tablica_3.pop_front();
cout<<"Wartoscia nr1 tablicy 3 po usunieciu jest : " << tablica_3[0]<<endl;


  cin.ignore();			
  getchar();				
  return 0;   
}

Kompiluje się prawidłowo, ale po uruchomieniu następuje załamanie programu, a następnie pojawia się komunikat deque::out of range
Próbowałem zapisu w nowym pliku i panownej kompilacji

Czy mógłby ktoś podpowiedzieć gdzie tkwi błąd?

2
11 element tablicy vector ma wartosc : 3
1 element tablicy vector ma wartosc : 123
2 element tablicy vector ma wartosc : 12345
Tablica_1 ta zawiera : 13 elementow
Tablica_2 ta zawiera : 10 elementow
Tablica_2 po redukcji zawiera : 9 elementow
1 element tablicy 3 ma wartosc : 1
Wartoscia nr1 tablicy 3 po dodaniu jest : 3
Wartoscia nr1 tablicy 3 po usunieciu jest : 1

Sprawdzone pod Visualem 2013 Preview i MinGW GCC 4.7.2.
Żaden błąd nie wyskakuje.

0

http://ideone.com/1kl2cd
U mnie pod gcc też pomyka jak rącza gazela. Zgaduje że to w ogóle nie ten kod, bo ja tu nie widze deque...

0

Dzięki Azarien
Jest jak mówisz:)

Orientuje się ktoś czemu w Dev C++ nie działa?
Jest to wina tylko i wyłącznie kompilatora?

2

Działa również pod starszym GCC 4.6.2 (z MinGW), tak btw.


Orientuje się ktoś czemu w Dev C++ nie działa?

Bo to poronione środowisko pełne bugów (jeżeli mowa o serii 4.9.x.x), a ponadto jest dostarczane wraz z naprawdę starym kompilatorem?

Jest to wina tylko i wyłącznie kompilatora?

Skompiluj z konsoli i się przekonaj...

1

Może ktoś potwierdzić ze ten kod nie bandla na devie? Byłby to dobry przykład dla wszystkich którzy jeszcze z niego korzystają ;]

0

Ściągnij Orwell Dev-C++ jeśli nie chcesz przechodzić na inne środowisko.

Tylko weź pod uwagę, że standardowy download domyślnie kompiluje w 64 bitach (i wcale nie jest go tak łatwo zmusić do kompilacji 32-bit, wbrew temu co piszą).
Jeśli ci zależy na 32 bitach, ściągnij wersję z MinGW a nie TDM.

http://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/

1 użytkowników online, w tym zalogowanych: 0, gości: 1