Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wywołanie funkcji z Vector

Ostatnio zmodyfikowano 2017-05-27 09:43
Autor Wiadomość
wokub
Temat założony przez niniejszego użytkownika
» 2017-05-26 20:41:57
Cóż, zostaje pozostać przy wersji z C++98. Swoją drogą dziwne, że wcześniejsza wersja łatwiej sobie radzi z tym problemem, ale cóż. Pewnie wyjątek od reguły.
P-161626
carlosmay
» 2017-05-26 21:54:59
Cóż, zostaje pozostać przy wersji z C++98.
Cofanie się do starożytności, aby ogarnąć działanie koła nie ma większego sensu.

Korzystasz z STL - minimum to C++11.
P-161636
jankowalski25
» 2017-05-26 21:55:04
Dlaczego myślisz, że C++98 nie pozwala na przeciążanie operatorów? Przecież możesz napisać
std::cout << 5;
 i zostanie użyty
operator <<
. Poza tym, możesz przecież napisać własny przeciążony operator, który wypisze zawartość wektora.
P-161637
czaffik
» 2017-05-26 22:01:48
1. Funkcję zerującą można zrobić na różne sposoby, akurat zrobiłem tak że przyjmuje wartość przez referencję (więc funkcja zmodyfikuje wektor), ale możesz zrobić też tak że przyjmie przez wartość i zwróci wyzerowany wektor, sam próbowałeś przyjąć i zwrócić, tyle że funkcja była void!
2. Rezerwujesz wektor na 2 elementy a potem dodajesz dwa kolejne, w konsekwencji masz 4 elementy w wektorze, dwa pierwsze zapewne zero, chociaż nie pamiętam dokładnie czym są wypełniane wartości wektora po utworzeniu.

C/C++
#include <iostream>
#include <vector>
#include <climits>
#include <algorithm>

using namespace std;

void zeruj( vector < double > & v )
{
    fill( v.begin(), v.end(), 0 );
}

ostream & operator <<( ostream & out, const vector < double > & v )
{
    for( const auto & i: v )
         out << i << " ";
   
    out << "\n";
   
    return out;
}

int main()
{
    vector < double > wektor;
    wektor.push_back( 2.0 );
    wektor.push_back( 5.0 );
   
    for( const auto & w: wektor ) cout << w << " ";
   
    cout << "\n";
   
    zeruj( wektor );
   
    for( const auto & w: wektor ) cout << w << " ";
   
    cout << "\n";
   
    cout << wektor;
   
    return 0;
}
P-161639
wokub
Temat założony przez niniejszego użytkownika
» 2017-05-26 22:39:07
Co prawda, wiem co tutaj się dzieje, ale sam bym na to nie wpadł :D
P-161641
pekfos
» 2017-05-27 00:56:10
Korzystasz z STL - minimum to C++11.
Jak to należy rozumieć? Wcześniej STL nie istniał?
P-161650
carlosmay
» 2017-05-27 09:43:54
Jak to należy rozumieć?
Starać się używać możliwie najnowszego standardu. Minimum C++11.
P-161652
1 « 2 »
Poprzednia strona Strona 2 z 2