Newsgroup: it.comp.lang.c++
Titolo: vector - poche info... :(

sto studiando i vettori
vorrei capirci qualcosina, ma nè sul coronado, nè in thinking in c++ vengono
spiegati dettagliatamente
conosco solo il metodo .push_back(...)
quali altre cose ci posso fare?
come faccio ad eliminare un oggetto dal vettore?
se lo elimino vengono 'compattati' gli elementi del vettore? oppure resta un
'buco'?
mi potete fare un esempio di come si crea e come si usa un vettore di
semplicissime classi?
tnx
--
ciao
..::[xaero]::..

sto studiando i vettori
Vector
------
#include <vector>
The vector class is similar to an array, and allows
array-type syntax, e.g. my_vector[2] . A vector is able to access
elements at any position (referred to as "random" access in the
preceding table) with a constant time overhead, O(1). Insertion or
deletion at the end of a vector is "cheap". As with the string, no
bounds checking is performed when you use operator []. 
Insertions and deletions anywhere other than at the end of the vector
incur overhead O(N), N being the number of elements in the
vector, because all the following entries have to be shuffled along to
make room for the new entries, the storage being contiguous.
Memory overhead of a vector is very low and comparable to a normal
array. 
The table below shows some of the main vector functions. 
  Some Vector Access Functions    Purpose
  ----------------------------    -------
  begin()                         Returns iterator pointing to first
element
  end()                           Returns iterator pointing _after_
last element
  push_back(...)                  Add element to end of vector
  pop_back(...)                   Destroy element at end of vector
  swap( , )                       Swap two elements
  insert( , )                     Insert new element
  size()                          Number of elements in vector
  capacity()                      Element capacity before more memory
needed
  empty()                         True if vector is empty
  []                              Random access operator
The next example shows a vector in use. 
// ANSI C Headers
#include <stdlib.h>
// C++ STL Headers
#include <algorithm>
#include <iostream>
#include <vector>
#ifdef _WIN32
using namespace std;
#endif
int main( int argc, char *argv[] )
{
    int nitems = 0;
    int ival;
    vector<int> v;
    cout << "Enter integers, <Return> after each, <Ctrl>Z to finish:"
<< endl;
    while( cin >> ival, cin.good() ) {
      v.push_back( ival );
      cout.width(6);
      cout << nitems << ": " << v[nitems++] << endl;
    } 
    if ( nitems ) {
      sort( v.begin(), v.end() );
      for (vector<int>::const_iterator viter=v.begin();
viter!=v.end(); ++viter)
        cout << *viter << " ";
      cout << endl;
    }
    return( EXIT_SUCCESS );
}
Note how the element sort takes v.begin() and v.end() as range
arguments. This is very common in the STL, and you will meet it
again. The STL provides specialized variants of vectors: the bitset
and valarray. The former allows a degree of array-like
addressing for individual bits, and the latter is intended for numeric
use with real or integer quantities. To use them, include the
<bitset> or <valarray> header files (these are not always supported in
current STL implementations). Be careful if you erase()
or insert() elements in the middle of a vector. This can invalidate
all existing iterators. To erase all elements in a vector use the
clear() member function. 
Luc.

semplicissime classi?
Beh, potrei spiegarti tutto quello che so sugli 'std:.vector', ma
siccome non ho molto tempo per scrivere ed usenet non é un help in
linea, ti dico che su Internet potrai trovare numerosi siti che
parlano della libreria standard, uno di questi é sicuramente
l'italianissimo 
www.programmazione.it
 , anche se io ho preferito
nettamente leggere direttamente la documentazione della libreria
standard della RogueWave(una delle migliori in circolazione) fornita
con i compilatori della Borland stile Builder o BCC32.
Meglio una documentazione completa ed affidabile piuttosto che una
serie di informazioni carpite qua e la.
Lavinia
WINWORD.EXE - ERRORE DI APPLICAZIONE
l'istruzione a "0x3017ff27"ha fatto riferimento alla
memoria a "0x02a3143c".La memoria non poteva essere 'read'.