Пытаюсь создать свой list из array
есть структура
template
собственно функция
template
Node
в main
int tabi[] = {2,1,4,3,6,5,7,8};
size_t sizei = sizeof(tabi)/sizeof(tabi[0]);
Node
так вот проблема в том что не могу править созданный экземпляр Node тут node->next = new Node
Ответ
Не понятно, в чем состоит ваша проблема
Поэтому я предложу код, который позволяет заполнить список элементами массива. Надеюсь, что если это не то, что вам нужно, то вы об этом сообщите мне в своем комментарии к ответу.
Вот демонстрационная программа
#include
template
template
for ( size_t i = 0; i < n; i++, current = &( *current )->next )
{
*current = new Node
return head;
}
template
int main()
{
int a[] = { 2, 1, 4, 3, 6, 5, 7, 8 };
const size_t N = sizeof( a ) / sizeof( *a );
for ( int x : a ) std::cout << x << ' ';
std::cout << std::endl;
Node
displayList( list );
std::cout << std::endl;
}
Ее вывод на консоль:
2 1 4 3 6 5 7 8
2 1 4 3 6 5 7 8
Если ваш компилятор не поддерживает список инициализации для оператора new, то предложение
*current = new Node
вы можете заменить на следующие предложения
*current = new Node
Либо вы можете написать для класса Node конструктор, чтобы можно было бы опять записать все в одну строчку, как, например
*current = new Node
Комментариев нет:
Отправить комментарий