Hallo liebe Community,
habe gerade bei der Berechnung meines Feldes für ein Snakegame versucht über eine Funktion, Speicher auf dem Heap mittels Zeigern zu reservieren.
Da jedoch Zeiger nur eindimensional verwendet werden können habe ich mich nach Alternativen umgehört und das vector template aus der STL gefunden.
Nach dem Studieren eines Youtubetutorials bin ich auf folgenden Code gekommen:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <vector>
#include <iostream>
using namespace std;
template <typename T>
void PrintVector(vector<T> v1)
{
for(int i=0;i<v1.size;i++)
{cout<<v1.at(i);
}
}
int main()
{
vector<int> v;
v.push_back(10);
PrintVector(v);
cin.sync();
cin.get();
}
|
Doch der Compiler gibt folgendes aus:
Fehler 1 error C3867: "std::vector<_Ty>::size": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&std::vector<_Ty>::size", um einen Zeiger auf den Member zu erstellen. 10
Fehler 2 error C2446: '<': Keine Konvertierung von 'unsigned int (__thiscall std::vector<_Ty>::* )(void) const' in 'int' 10
Fehler 3 error C2297: '<': Ungültig, da der rechte Operand vom Typ 'unsigned int (__thiscall std::vector<_Ty>::* )(void) const' ist 10
Jedoch bin ich noch relativ frisch auf diesem Gebiet, eventuell sind meine Einstellungen des Compilers dran schuld ? Da ich alle auf die Verwendung der SDL-libary umgestellt habe, sprich Subsystem Windows, Multithreated .. und weitere ...
Hat einer eine Idee woran es liegen könnte?
Danke im voraus,
Daedra