Vectory, prawdopodobnie prosty błąd, którego nie potrafię wyłapać.

0

Cześć wszystkim,

Ostatnio rozpocząłem swoją przygodę z programowaniem, i staram się poszerzać swoją wiedzę. Aktualnie staram się pojąć vectory.
Pisząc swój program, postanowiłem zamienić wszystkie tablice na vectory. Finalnie otrzymałem 2 błędy których nie jestem w stanie znaleźć.

Błędy:

[ilink32 Error] Error: Unresolved external '_main' referenced from C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\20.0\LIB\WIN32C\RELEASE\C0X32.OBJ
[ilink32 Error] Error: Unable to perform link



#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <vector>

using namespace std;


void print_vector(vector<int> vector)
{
   for(int i = 0; i < vector.size(); i++)
   {
		cout << vector[i] << "\t";
   }
}


void play_game()
{
	vector<int> vector;
	int random,answer;
	srand(time(NULL));
	random = rand() % 251;
	cout << random << endl;
	int answer_count = 0;


	while(true)
	{

		cout << "Try to guess the number: ";
		cin >> answer;

		vector.push_back(answer);

		if(answer == random)
		{
			cout << "You guessed a number, congrats!" << endl;
			break;
		}
		else if (answer < random)
		{
			cout << "Too low."<< endl;
		}
        else
		{
			cout << "Too high." << endl;
		}

		for(int i=0; i < vector.size(); i++ )
		{
			answer = vector[i];
		}


   }


	cout << "There are your numbers: " ;
	print_vector(vector);
	cout << '\n' ;

}


int main()
{
	int option;
	cout << "1.Play game \n2.Quit\n";
	cout << "Choice your option: " ;
	cin >> option;

	switch(option)
	{
		case 1:
		  play_game();


		case 2:
		break;

		default:
			cout << "There is no option";
		break;
	}

	system("pause");

}

3

Coś źle robisz podczas procesu budowania, bo to jest błąd likowania, który mówi, że nie można znaleźć funkcji main, którą masz.
najprawdopodobniej, kompilujesz inne źródło niż to co ci się wydaje.

https://wandbox.org/permlink/RamBHGb59LR08dl6

5

Tak na uboczu

vector<int> vector

Takie przesłanianie nazw kiedyś Cię ugryzie.

2

Aktualnie staram się pojąć vectory.

Więc zwróć uwagę na to, w jaki sposób przesyłany jest vector do funkcji print_vector. Lepiej zrobić to za pomocą referencji, gdyż wtedy nie jest tworzona **kopia **vectora, co może być kosztowne pamięciowo i wydajnościowo w przypadku obiektów o dużych rozmiarach. Użyj

void print_vector( const vector<int>& data )
{
   for( const auto& element : data )
   {
        cout << element << "\t";
   }
}
0
TomaszLiMoon napisał(a):

Aktualnie staram się pojąć vectory.

Więc zwróć uwagę na to, w jaki sposób przesyłany jest vector do funkcji print_vector. Lepiej zrobić to za pomocą referencji, gdyż wtedy nie jest tworzona **kopia **vectora, co może być kosztowne pamięciowo i wydajnościowo w przypadku obiektów o dużych rozmiarach. Użyj

void print_vector( const vector<int>& data )
{
   for( const auto& element : data )
   {
        cout << element << "\t";
   }
}

Jeszcze nie wiem czym są referencje, ale jak poznam ten dział to na pewno skorzystam, dzięki !!!

2

Jak już przejmujemy się wydajnością, to może warto pozbyć się tego:

        for(int i=0; i < vector.size(); i++ )
        {
            answer = vector[i];
        }

Jak się przyjrzysz, to zauważysz, że niczemu taka pętla nie służy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1