Hejsan Beror med högsta sannolikhet på att Kan du ge ett exempel på hur det ska se ut. (Är fortfarande nybörjare i C++) Det du kan göra är att använda dig av exempelvis explicit typkonvertering: Eller, det enda rimliga, använda en storlekstyp. Eller som Niklas rekommenderar, att använda sig av iteratorer.Felmeddelande
Får följande fel i raden som jag inte får bukt med.
Warning W8012 : Comparing signed and unsigned values in function main()
for(int i=0; i<tal.size(); i++)
Mvh
Urban
***Program***
#include <iostream>
#include <vector>
#include "iodos.h"
using namespace std;
int main()
{
dos_console();
srand( time(0));
int low=0, high=0, val=0;
cout << "Välj lägsta, och högsta tal : ";
cin >> low >> high;
cout << "Antal slumptal :";
cin >> val;
int random_integer;
int lowest=low, highest=high;
int range=(highest-lowest)+1;
vector<int> tal;
for (int index=0; index<val; index++)
{
random_integer = lowest+int(range*rand()/(RAND_MAX + 1.0));
tal.push_back(random_integer);
}
for(int i=0; i<tal.size(); i++)
{
cout << tal[i] << ' ';
}
return 0;
}Sv: Felmeddelande
tal.size()
inte returnerar ett tal av datatypen "int".
Sv:Felmeddelande
Mvh
UrbanSv: Felmeddelande
for(int i=0; i<(int)tal.size(); i++) {...}
Eller så kan du ändra variabeln "i" till att vara av den datatyp som tal.size() genererar.
Sv:Felmeddelande
Antar att tal.size() returnerar en size_t (som vanligtvis är en unsigned int).
Då är rätt väg:
for(size_t i=0; i<tal.size(); i++) {...}
Men riktigt rätt väg brukar vara att använda iteratorer istället. (och framförallt: aldrig någonsin köra med [] på en vector om man inte absolut behöver prestandan).
Sv:Felmeddelande
Det blir i ditt fall:
#include <iostream>
#include <vector>
#include "iodos.h"
using namespace std;
int main()
{
dos_console();
srand( time(0));
int low=0, high=0, val=0;
cout << "Välj lägsta, och högsta tal : ";
cin >> low >> high;
cout << "Antal slumptal :";
cin >> val;
int random_integer;
int lowest=low, highest=high;
int range=(highest-lowest)+1;
vector<int> tal;
for (int index=0; index<val; index++)
{
random_integer = lowest+int(range*rand()/(RAND_MAX + 1.0));
tal.push_back(random_integer);
}
vector<int>::iterator it;
for(it=tal.begin(); it!=tal.end(); it++)
{
cout << *it << ' ';
}
return 0;
}