Klaus Petersen <ng@spectual.ra.bnaa.dk> skrev:
> Hej NG.
>
> Kan nogen forklare hvad subj. er og hvordan man bruger det i Visual C/C++?
Først: Det findes ikke i C, men kun i C++.
En container er en betegnelse for en template-klasse hvis objekter
kan gemme objekter af en bestemt type og udføre en række standard
template-funktioner (algoritmer) på disse objekter.
Egentlige STL-containerne er: vector, list, deque, stack, queue,
priority_queue, map, multimap, set, multiset.
Dertil kommer string, valarray, bitset og almindelige C-arrays som
kan bruges som containere i mange situationer.
Her er et eksempel på et program som læser et antal ord ind i en
vector<string>, sorterer ordene og udskriver dem sorteret med
eventuelle dubletter frasorteret:
#include <iostream> // cin, cout (i/o-strømme)
#include <iterator> // *_iterator (objekter til gennemløb af containere)
#include <string> // string (strengklasse)
#include <vector> // vector (container)
#include <algorithm> // sort, unique_copy (funktioner til containere)
using namespace std;
int main ()
{
istream_iterator<string> ii (cin); // input-iterator
istream_iterator<string> eos; // input-iterator
vector<string> ord(ii, eos); // indlæs ord fra stdin
sort (ord.begin (), ord.end ()); // sortér ordene
ostream_iterator<string> oi (cout, " "); // output-iterator
unique_copy (ord.begin (), ord.end (), oi); // udskriv ord uden dubletter
}
|