Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » listen - arithmetische funktionen

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
12.01.2004, 19:53 Uhr
BoNeSpiRit



Also ich habe eine Liste und will da bei jedem Element x zum Beispiel subtrahieren...
Ich weiss, dass es die arithmetischen Funktionen wie minus, plus, divides usw. gibt, aber wie wendet man die auf listen an?

oder muss ich das kompliziert machen und ne methode schreiben die das für jedes Element einzeln macht und aus diesen ne neue Liste erzeugt...

Wär riesig dankbar, wenn jemand da was hätte...

Schöne Grüsse,
BoNeSpiRit

Dieser Post wurde am 12.01.2004 um 20:50 Uhr von BoNeSpiRit editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.01.2004, 20:03 Uhr
Pablo
Supertux
(Operator)


Es hängt davon ab, wie du die Liste implementiert hast, SLL, DLL, std::vector, C C++, usw. Ohne weiter Information können wir nichts anfangen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.01.2004, 20:07 Uhr
(un)wissender
Niveauwart


Hm, std::list überläd keine arithmetischen Operationen, dass tut nur valarray(soweit ich weiß).

Ansonsten muss du alles durchgehen, ungefär(!) so.

C++:
//für plus
for_each(list.begin(), list.end(), bind2nd(plus<meinListInhalt>(), zu_addierender_Wert));


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.01.2004, 20:08 Uhr
(un)wissender
Niveauwart


Analog (Gegenteil von: Anna hat die Wahrheit gesagt) geht das auch mit minus, divides, multiply...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.01.2004, 23:08 Uhr
BoNeSpiRit



hab in c++ ne einfache liste implementiert...

C++:
list <int> liste;



die wird dann beim Abruf mit


C++:
liste.insert(liste.end(),x);



gefüllt...

@(un)wissender: hmm... wo wird denn da was verändert, bzw. wie lass ich mirn die veränderung ausgeben???

Greetz
BoNeSpiRit
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.01.2004, 00:00 Uhr
(un)wissender
Niveauwart


Nimm statt for_each transform, sorry dafür.


C++:
#include <iostream>
#include <iterator>
#include <functional>
#include <algorithm>
#include <list>

int main(int agrc, char *args[])
{
    using namespace std;
    typedef int my_value;  
    my_value adder = my_value(2);
    
    list<my_value> my_list;
    my_list.push_back(my_value(1));
    my_list.push_back(my_value(2));
    my_list.push_back(my_value(3));
    
    //Vor Addition
    copy(my_list.begin(), my_list.end(), ostream_iterator<my_value>(cout, " "));
    
    transform(my_list.begin(), my_list.end(), my_list.begin(),
             bind2nd(plus<my_value>(), adder ) );
    
    cout << endl;
    //Nach Addition        
    copy(my_list.begin(), my_list.end(), ostream_iterator<my_value>(cout, " "));

    return 0;
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.01.2004, 00:51 Uhr
BoNeSpiRit



super !!!!


tausend Dank !!!!

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.01.2004, 06:35 Uhr
(un)wissender
Niveauwart


Schön, dass es behilflich war.

--
Wer früher stirbt ist länger tot.
 
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: