Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » vector-Objekte als Funktionsparameter?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.12.2006, 20:26 Uhr
Yadgar



High!

Auf die Empfehlung von 3735928559 ;-) habe ich das String-Array in meiner Klasse "Command" durch einen Vektor vom Typ String ersetzt... aber was mache ich dann mit dem Konstruktor? Ich habe nicht die leiseste Ahnung, wie man Vektoren als Funktionsparameter übergibt oder ob und wenn ja, wie Zeiger auf Vektoren möglich sind... kann mir jemand von euch dazu was sagen?

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.12.2006, 21:43 Uhr
Karldin Shinowa
Professional Noob


ganz einfach:


C++:

Konstruktor( vector<string> * VECTOR)
{
//....
}


--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.12.2006, 21:46 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


wie ganz normale Objekte auch:

C++:
#include <iostream>
#include <vector>

void bla(std::vector<std::string> blubb)
{
    for(std::vector<std::string>::iterator iter = blubb.begin(); iter != blubb.end(); iter++)
    {
        std::cout << *iter << std::endl;
    }
}

int main(int argc, char* argv[])
{
    std::vector<std::string> foo;
    foo.push_back("eins");
    foo.push_back("zwei");
    bla(foo);
    return EXIT_SUCCESS;
}


Ansonsten eben mit std::vector<std::string>* für Pointer und std::vector<std::string>& für Referenz.
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.12.2006, 15:35 Uhr
0xdeadbeef
Gott
(Operator)


Normalerweise:

C++:
Foo::Foo(std::vector<std::string> const &meine_kleine_referenz);


...dann wird der Vektor als konstante Referenz übergeben. Das hat einen ähnlichen Effekt wie j-jayz-zs Code, ist aber etwas performanter, weil keine Objektkopie angelegt wird. Allerdings müsste man den Code dann so ändern, dass

C++:
void bla(std::vector<std::string> const &blubb)
{
    for(std::vector<std::string>::const_iterator iter = blubb.begin(); iter != blubb.end(); iter++)
    {
        std::cout << *iter << std::endl;
    }
}


...davon ganz abgesehen empfiehlt sich für dieses spezielle Stück Code

C++:
#include <algorithm>
#include <iterator>

// ...

std::copy(foo.begin(), foo.end(), std::ostream_iterator<std::string>(std::cout, "\n"));


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 20.12.2006 um 15:36 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: