Top.Mail.Ru
Ответы

С++. Ошибка: begin не является однозначным как и end

Почему в двусвязном списке я не могу использовать begin как начало списка и end как конец. Но назвав как-нибудь иначе все работает. В односвязном списке я могу ставить begin на начало и end на конец.
Вот из за таких вот мелочей иногда просто мозг взрывается от того что вроде как бы все и правильно делал но не работает.... почему так..?

Дополнен

using namespace std;

struct Node
{
int data;
struct Node *next;
struct Node *back;
};

Node *start = NULL;
Node *last = NULL;
Node *current = NULL;
Node *temp = NULL;
Node *List = NULL;

void add(int s)
{
if (start != NULL)
{
List = new Node;
List->data = s;
List->next = NULL;
List->back = current;
current->next = List;
last = List;
current = List;
}
else
{
List = new Node;
List->data = s;
start = List;
List->next = NULL;
List->back = NULL;
current = List;
last = start;
}

}

int main()
{
setlocale(LC_ALL, "Russian");

int Array[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i(0); i < 10; i++)
{
add(i);
}
for (int i(0); i < 10; i++)
{
cout << last->data << endl;
last = last->back;
}
last = current;
system("pause");
return 0;
}

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Попробую простыми словами, если не поняли знатоков. std - это пространство имен, и сделано оно для того что бы имена переменных и функций одной библиотеки не пересекались именами другой... В данном случае вы подключаете пространство имен std "using namespace std;", говоря тем самым компилятору что вы не будите использовать эти имена в своей программе, и используете имя begin как структуру не заботясь что это итератор (читаем в интернете что такое итератор) в пространстве имен std. Хотите использовать begin, удалите строку "using namespace std", а там где используете функции этого самого пространства имен ставим std:: Например: std::cout << "Привет мир"; std::cin >> num;

Аватар пользователя
Мудрец
7лет

Тут код смотреть надо, тут экстрасенсов нет...
Но возможно ты каким-то чудом итераторы задел...
http://www.cplusplus.com/reference/iterator/begin/

Аватар пользователя
Высший разум
7лет

Если ваш мозг не справляется с чужим. Просто признайте, что кто-то умнее вас