Questo blog raccoglie gli appunti universitari dell'autore, per averli sempre a portata di mano e magari per dare una mano a qualcuno!
mercoledì 20 marzo 2013
C++ Appunti: containrs, iteratori, libreria std
Come inizializzare un vettore con un array
vector<int> v;
double arr[] = {27.1, 23, 233, 56.6, 4};
cont_t v(arr, arr+sizeof(arr)/sizeof(double));
//o anche
cont_t v(arr, arr+_countof(arr));
CREAZIONE VETTORE
cont_t v(10);
cont_t v(10, 3.14);
cont_t v(b.begin(), b.end());
cont_t v(b.begin(), b.begin()+3);
FILL
fill(v.begin(), v.end(), 0.0);
FILL_N
fill_n(back_inserter(v), 10, 3.1415);
GENERATE
generate(v.begin(), v.end(), incr<double>(3.1415));
GENERATE_N
generate_n(back_inserter(v), 10, incr<double>());
ITERATORE
#include <iterator>
typedef vector<int>::iterator iter_t;
iter_t it;
for(it=v.begin();it!=v.end();++it)
cout << *it << ",";*/
FOR EACH
#include <algorithm>
for_each(v.begin(), v.end(), print<double>);
Con print definita come:
template <typename _T>
void print(const _T& val){
cout << val << ", ";
}
COPY
copy(v.begin(), v.end(), v2.begin());
copy(v.begin(), v.end(), ostream_iterator<double>(cout, ", "));
Creare un vettore di interi crescenti
generate_n(front_inserter(v), 10, incr<double>());
template <typename _T>
struct incr{
_T _val;
incr(const _T val=0): _val(val){};
const _T& operator() (){//le seconde parentesi sono i parametri
return ++_val;
}
};
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento