Hola amigos, tengo un problema con un lista en c++ en mi estructura tengo mi campo carne y nombre ambos string, pero cuando quiero eliminar me tira este error
.\main.cpp(71) : error C2451: la expresión condicional de tipo 'std::string' no es válida
dejo el codigo haber en q estoy fallando
Código:
#include <iostream>
#include <string>
using namespace std;
struct nodolista{
string carne, apellido, nombres, telefono;
int edad;
nodolista *link;
};
int main(){
nodolista *start=NULL;
string nom, ape, tel, carne;
int eda, tamano;
carne="";
if(!vacia(start))
{
cout<<"Ingrese el carne del alumno a eliminar: ";
cin>>carne;
if(borrar(&start,carne)
{
cout<<"Alumno con carne: "<<carne<<" borrado"<<endl;
imprimir(start);
}
else{
cout<<"El alumno no esta inscrito"<<endl;
system("PAUSE");
}
}
else{
cout<<"La base de datos esta vacia"<<endl;
system("PAUSE");
}
Ahora la funcion borrar y vacia
Código:
string borrar(nodolista **start2, string dato)
{
nodolista *previo, *next, *temp;
if(dato==(**start2).carne)
{
temp=*start2;
*start2=(**start2).link;
free(temp);
return dato;
}
else{
previo=*start2;
next=(**start2).link;
while(next!=NULL && (*next).carne!=dato)
{
previo=next;
next=(*next).link;
}
if(next!=NULL)
{
temp=next;
(*previo).link=(*next).link;
free(temp);
return dato;
}
}
return '\0';
}
int vacia(nodolista *start)
{
return start==NULL;
}