1
C++ - Fel i funktionen?
Postat av semiCoulomb den 1 Oktober 2013, 22:29
17 kommentarer · 317 träffar
Hej, allihopa!
Har stött på ett problem när jag använder mig utav selection sort för att sortera en array i en funktion. Problemet jag har är att om jag deklarerar en funktion med en bestämd returtyp som är utav "string" får jag felmeddelandet "Error: expected a '{' introducing a lambda body". Om jag istället använder mig utav template<typename T> och byter ut string mot T så får jag däremot inget felmeddelande? Vad kan felet bero på?
SYNTAX:
void selectionSort(string array[], int CAPACITY)
{
string minIndex = "";
string temp = "";
for(int i = i+1; i < CAPACITY; i++)
{
minIndex = [i];
for(int k = 0; k < CAPACITY; k++)
{
if(minIndex > [k]) //Felmeddelande
{
temp = minIndex;
minIndex = k;
}
}
}
}
—————————————————————-
Har provat dessa lösningar:
template
int minIndex;
string minIndex;
Däremot, så kan jag lösa felmeddelanden genom att sätta dit "array", vilket är arrayens namn i funktionen, då löses alla mina problem också. Kan det vara så att jag har missat att detta behövs? Om så är fallet, så får ni gärna förklara varför. I mina andra selection sort har jag aldrig använt mig utav arrayens namn utan endast använd värdet på [i] och [k] t.ex. för att organisera arrayen.
OBS: Första gången jag använder mig utav någon sorterings algoritm för att kunna sortera en sträng.
Har stött på ett problem när jag använder mig utav selection sort för att sortera en array i en funktion. Problemet jag har är att om jag deklarerar en funktion med en bestämd returtyp som är utav "string" får jag felmeddelandet "Error: expected a '{' introducing a lambda body". Om jag istället använder mig utav template<typename T> och byter ut string mot T så får jag däremot inget felmeddelande? Vad kan felet bero på?
SYNTAX:
void selectionSort(string array[], int CAPACITY)
{
string minIndex = "";
string temp = "";
for(int i = i+1; i < CAPACITY; i++)
{
minIndex = [i];
for(int k = 0; k < CAPACITY; k++)
{
if(minIndex > [k]) //Felmeddelande
{
temp = minIndex;
minIndex = k;
}
}
}
}
—————————————————————-
Har provat dessa lösningar:
template
int minIndex;
string minIndex;
Däremot, så kan jag lösa felmeddelanden genom att sätta dit "array", vilket är arrayens namn i funktionen, då löses alla mina problem också. Kan det vara så att jag har missat att detta behövs? Om så är fallet, så får ni gärna förklara varför. I mina andra selection sort har jag aldrig använt mig utav arrayens namn utan endast använd värdet på [i] och [k] t.ex. för att organisera arrayen.
OBS: Första gången jag använder mig utav någon sorterings algoritm för att kunna sortera en sträng.
Uppdatering skriven 1 Oktober 2013, 23:28
Har löst det förstnämnda problemet. Mitt nuvarande problem är nu att jag måste kunna sortera strängarna.
Syntax: http://pastebin.com/4jyAYQXP
Syntax: http://pastebin.com/4jyAYQXP
Uppdatering skriven 2 Oktober 2013, 00:41
Löst det andra problemet också. Det enda problemet jag har nu är att den sista platsen i arrayen vägrar sorteras.
http://pastebin.com/fZqvey78
http://pastebin.com/fZqvey78
Uppdatering skriven 2 Oktober 2013, 00:49





