• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z użyciem tablicy jako argumentu funkcji.

Object Storage Arubacloud
0 głosów
170 wizyt
pytanie zadane 22 lipca 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
zamknięte 22 lipca 2017 przez Shiro

Hej :) 

Mam funkcję o takim nagłówku:

string calcTimeMultiple(int variables[], char calcType, string output);

I takim jej wywołaniu: 

(atoi(calcTimeMultiple(daysList, '+', "H").c_str()) < 25)
// lub
cout << calcTimeMultiple(daysList, '+', "H:M");

I takim błędzie: 

Severity	Code	Description	Project	File	Line	Suppression State
Error (active)	E0413	no suitable conversion function from "std::vector<int, std::allocator<int>>" to "int *" exists	WorkCounter	c:\Users\szeva\Desktop\WorkCounter\WorkCounter\Main.cpp	87	

Czy ktoś wytłumaczy mi co robię nie tak ? Pierwszy raz używam tablicy jako argumentu funkcji i jak patrzyłem np. tutaj: https://goo.gl/ISMNJ , to powinno działać jeżeli dobrze zrozumiałem. 

Tak czy siak miłego dnia życzę i liczę na pomoc ;)

komentarz zamknięcia: Problem resolved
komentarz 22 lipca 2017 przez draghan VIP (106,230 p.)

Pokaż deklarację daysList.

komentarz 22 lipca 2017 przez Shiro Stary wyjadacz (10,300 p.)
vector <int> daysList;

 

1
komentarz 22 lipca 2017 przez draghan VIP (106,230 p.)
No i wszystko jasne. std::vector to nie jest tablica - jest to szablon klasy. To, że std::vector używa się jak tablicy dla kompilatora nie ma znaczenia. On oczekuje tablicy, a dostaje coś zgoła innego. Musisz zmienić typ parametru funkcji. j23 już napisał, jak to powinno wyglądać. ;)

1 odpowiedź

+1 głos
odpowiedź 22 lipca 2017 przez kmieciak_m Mądrala (7,450 p.)
edycja 22 lipca 2017 przez kmieciak_m
 
Najlepsza

Wygląda mi na to, że tablica daysList jest tablicą klasy vector, a w nagłówku informujesz program, że dostanie hym w prostych słowach tablicę zmiennych. Spróbuj tak: 

string calcTimeMultiple(vector <int> &variables, char calcType, string output);

 

1
komentarz 22 lipca 2017 przez j23 Mędrzec (194,920 p.)

Raczej tak:

string calcTimeMultiple(const vector<int> &variables, char calcType, string output);

 

komentarz 22 lipca 2017 przez Shiro Stary wyjadacz (10,300 p.)

Prawdę pisząc to niestety żadna deklaracja nie działa, chodź wiem gdzie leży błąd za co dziękuje. 

missing type specifier - int assumed. Note: C++ does not support default-int

Ale i przy deklaracji vectora i przy nagłówku funkcji jest jak byk <int> 

komentarz 22 lipca 2017 przez criss Mędrzec (172,590 p.)
Wstaw linie (i powiązane) której błąd dotyczy... Inaczej nie ma to specjalnie sensu..
komentarz 22 lipca 2017 przez Shiro Stary wyjadacz (10,300 p.)

Nie ma problemu, myślałem że jeżeli kolega wyżej dał 'gotowy nagłówek' to będzie wiadomo: 

string calcTimeMultiple(const vector <int> &variables, char calcType, string output)

Teraz zauważyłem, że w tej samej linii jest syntax ';' przed '<'

komentarz 22 lipca 2017 przez j23 Mędrzec (194,920 p.)

Być może brakuje po prostu #include <vector> w pliku z implementacją/definicją calcTimeMultiple.

komentarz 22 lipca 2017 przez Shiro Stary wyjadacz (10,300 p.)
TRUE - Problem rozwiązany :)
2
komentarz 22 lipca 2017 przez criss Mędrzec (172,590 p.)
@kmieciak_m - edytuj jeszcze, proszę, swoją odpowiedź (usuń te [] przy vectorze), żeby nie zmylało potomnych :) Fenks

Podobne pytania

0 głosów
2 odpowiedzi 9,300 wizyt
0 głosów
2 odpowiedzi 191 wizyt
pytanie zadane 20 listopada 2016 w C i C++ przez ka-karola Początkujący (290 p.)
0 głosów
1 odpowiedź 454 wizyt
pytanie zadane 3 kwietnia 2019 w C i C++ przez mr.wo!tman Nowicjusz (120 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...