• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Biblioteka STL, vector

Object Storage Arubacloud
0 głosów
225 wizyt
pytanie zadane 21 lutego 2016 w C i C++ przez Ziuziek Mądrala (5,140 p.)

Witam mam pytanie odnosnie kontenera Vector

tworzac vector

#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
int x;
int main()
{
    vector <int> tab;
    for(int i=0; i<3; i++)
    {
        cin >> x;
        tab.push_back(x);
    }

    for(int i=0; i<3; i++)
    {
        cout << tab[i] << endl;
    }




    return 0;
}

 

Jak wykorzystac tu inserta, begina i enda,

Begin to wskazuje na 1 element

end na ostatni

a insert wprowadza dane?

Jesli chce zrobic

cout << tab.begin() << endl;

powinien przeczytac 1 element? Prosze o latwe przyklady zebym mogl prze analizowac bo w internecie ciezko o tym :P

1 odpowiedź

+1 głos
odpowiedź 21 lutego 2016 przez adrian17 Ekspert (345,160 p.)
wybrane 21 lutego 2016 przez Ziuziek
 
Najlepsza

begin() zwraca iterator na pierwszy element. end() zwraca iterator za ostatnim elementem.

insert() wprowadza nowy element w wybranym miejscu (a nie np. na końcu, jak robi push_back)

front() zwraca pierwszy element. back() zwraca ostatni element.

bo w internecie ciezko o tym

Taaa...

http://en.cppreference.com/w/cpp/container/vector

http://www.cplusplus.com/reference/vector/vector/

komentarz 21 lutego 2016 przez MetGang Nałogowiec (34,360 p.)
I rada na przyszłość. Jeśli używasz jakiegokolwiek iteratora, zawsze stosuj w pętli pre(in/de)krementacje, czyli ++it lub --it. W przypadku iteratorów daje to znaczący wzrost szybkości działania.
komentarz 21 lutego 2016 przez Ziuziek Mądrala (5,140 p.)

jeszcze jedno dla upewnienia sie czy dobrze rozumuje:


    vector<int>::iterator it=tab.begin();
    vector<int>::iterator ite=tab.end();
    for(it=tab.begin();it!=tab.end();it++)

Czyli chodzi ze do iteratora deklaruje  "it=tab.begin();" i "ite=tab.end();"

by potem  petla znala poczatek i koniec kontenera i w petli wypisujemy warunek ze poczatek poki nie jest koniec, i it++??

komentarz 21 lutego 2016 przez adrian17 Ekspert (345,160 p.)

nie wiem po co je na górze deklarujesz, ite nawet nie używasz. Można po prostu:

for(auto it=tab.begin();it!=tab.end();++it)
komentarz 23 lutego 2016 przez Ziuziek Mądrala (5,140 p.)
Wtedy wyskakuje blad:

||=== Build: Debug in wektor (compiler: GNU GCC Compiler) ===|
D:\wektor\main.cpp||In function 'int main()':|
D:\wektor\main.cpp|33|warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]|
D:\wektor\main.cpp|33|error: 'it' does not name a type|
D:\wektor\main.cpp|33|error: expected ';' before 'it'|
D:\wektor\main.cpp|33|error: 'it' was not declared in this scope|
||=== Build failed: 3 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
komentarz 23 lutego 2016 przez MetGang Nałogowiec (34,360 p.)

Potrzebna obsługa C++11, zaznacz -std=c++11 we flagach kompilatora (Build options).

Podobne pytania

0 głosów
1 odpowiedź 127 wizyt
pytanie zadane 24 lutego 2016 w C i C++ przez Ziuziek Mądrala (5,140 p.)
0 głosów
2 odpowiedzi 80 wizyt
pytanie zadane 25 lutego 2016 w C i C++ przez Ziuziek Mądrala (5,140 p.)
0 głosów
2 odpowiedzi 126 wizyt
pytanie zadane 7 marca 2016 w C i C++ przez Ziuziek Mądrala (5,140 p.)

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,003 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...