Списки в С++
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Списки в С++ - 2007-12-21 20:10:29.546666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Прям стыдно такое спрашивать.В Делфи списки делать умею,хелп и всё что надо читал,с С++ разобрался. Но не пашут никак((. New() тут какое-то странное,а переписанный под С++ код из делфы не пашет.Плиз,простейший вариант покажите токо(заполнить-вывести).И пожалуйста не шлите "погуглить".
|
|
|
RE: Списки в С++ - 2007-12-21 20:28:14.240000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
#include <iostream>
#include <list>
using namespace std;
int main (int argc, char *argv[])
{
list<char*> arg_list;
while (*argv)
arg_list.push_back (*(argv ++));
list<char*>::iterator iter = arg_list.begin ();
for (; iter != arg_list.end (); iter ++)
cout << *iter << endl;
return 0;
}
|
|
|
RE: Списки в С++ - 2007-12-21 20:59:50.300000
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
О! Пасиба! пригодится. Токо можна мне простейший самодельный вариант: тип данных "списки",через структуры,с динам. памятью. Ну,например,чтоб числа/строки/чё-нить запоминалось. (Они,вроде,ещё однонаправленные и двунаправленные бывают). Я не про((.
|
|
|
RE: Списки в С++ - 2007-12-21 22:59:09.250000
|
|
|
Mystic.asm
Сообщений: 53
Оценки: 0
Присоединился: 2007-06-17 18:19:29.466666
|
Стандартный list двусвязный вроде. Не пойму, почему нельзя использовать его. Но и так ничего трудного нету. Вот пример для целых чисел в списке: struct item{ item(int n):n(n), next(0), prev(0){} int n; list* next; list* prev; }; class list{ public: list():header(0){} add(int n){ if(header == 0){ header = new item(n); return; } item* temp = header; while(temp->next != NULL) temp = temp->next; temp->next = new item(n); temp->next->prev = temp; } private: item* header; }; пример демонстративный, может содержать ошибки и не полный (реализована только одна функция).
|
|
|
RE: Списки в С++ - 2007-12-21 23:11:52.333333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: Genco Они,вроде,ещё однонаправленные и двунаправленные бывают это животные бывают однопроходными и двупроходными, мы принадлежим ко вторым, а первые сэкономили на жопе и срут через рот. :) списки же односвязные и двусвязные.
|
|
|
RE: Списки в С++ - 2007-12-22 21:09:22.570000
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
quote:
add(int n){
if(header == 0) {
header = new item(n);
return;
}
item* temp = header;
while(temp->next != NULL)
temp = temp->next;
temp->next = new item(n);
temp->next->prev = temp;
} ужос!
for(item **p = &list; *p; p = &((*p)->next)
;
*p = (list*)malloc(sizeof(list));
(*p)->n = blablabla;
(*p)->next = NULL;
|
|
|
RE: Списки в С++ - 2007-12-23 00:40:39.480000
|
|
|
Mystic.asm
Сообщений: 53
Оценки: 0
Присоединился: 2007-06-17 18:19:29.466666
|
Ну вообще-то лучше все-таки пользоваться оператором new (это все-таки не С, здесь более высокий уровень). Да и по демонстративности моя программа более понятна, основной целью я ставил хоть какую-то понятность.
|
|
|
RE: Списки в С++ - 2007-12-23 19:26:36.910000
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Мне,кстати,именно с new и надо было.) А в хелпе баг - для С и С++ - разное описание работы функций.Ща вроде догнал. Кстати,если не сложно, просветите: что есть "<list>"? Читал,читал-фигня какая то! Как юзать-то?
|
|
|
RE: Списки в С++ - 2007-12-24 00:52:11.950000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: Genco Мне,кстати,именно с new и надо было.) А в хелпе баг - для С и С++ - разное описание работы функций.Ща вроде догнал. Кстати,если не сложно, просветите: что есть "<list>"? Читал,читал-фигня какая то! Как юзать-то? может ты имел в виду list<char*> ? макроподстановка. есть такая фигня в c++ как template, который по сути своей способ создания макросов. и есть STL – стандартная библиотека этих самых template'ов, которая позволяет генерить макроподстановками стандартные типы и стандартные алгоритмы. #include<list> – это как раз подключение заголовочного файла той самой STL. В данном случае я сгенерил тип, который вкратце можно описать так: "список, элементы которого помимо стандартных полей-указателей next и prev (возможно ещё каких-то полей, используемых для реализации списка), содержит поле с типом char*".
|
|
|
|
|