Форум программистов, компьютерный форум CyberForum.ru

как передать struct в list - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка с библиотеками, что-то клинит http://www.cyberforum.ru/cpp-beginners/thread896852.html
Выбивает целую кучу ошибок. может я что-то забыл.. 1>f:\lessons\c++\projects-2013\fileotl\fileotl\otladka.cpp(47): error C2059: синтаксическая ошибка: if 1>f:\lessons\c++\projects-2013\fileotl\fileotl\otladka.cpp(47): error C2143: синтаксическая ошибка: отсутствие ";" перед "{" 1>f:\lessons\c++\projects-2013\fileotl\fileotl\otladka.cpp(47): error C2447: {: отсутствует заголовок функции...
C++ Что это такое? Написал большую программу (курсовая работа), после многочисленных правок закончились красные подчеркивания в тексте программы, но при попытке собрать проект выдает вот это Программа - NetBeans IDE7.3 Компиляторы Cygwin "/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf cygwin warning: MS-DOS style path detected:... http://www.cyberforum.ru/cpp-beginners/thread896848.html
Обработка двустороннего списка C++
Здравствуйте. Помогите или подскажите в написании обрабатывающей части в программе. Есть задание: тип информ поля. char*. Добавить в список элементы с номерами 1,3,5.. Написал часть программы, но не знаю, как написать добавление элементов в список. #include <iostream>
C++ есть ли аналог ДЛЛ в линукс
возникла потребность запилить себе приложение под винду и линь (пишу на с++). тык вот, чтобы не делать своё приложение как в каменном веке монолитным, конечно же под виндой я смотрю в сторону DLL. Под виндой я их замечательно юзаю никаких проблем, весь избыточный код пихаю туда, а клиенотом так скажем остается дергать рычаги :) . решил попробовать портировать это дело под линь, (это не конечно...
C++ Где взять исходники stl? http://www.cyberforum.ru/cpp-beginners/thread896839.html
Не заголовочные файлы, а реализации. Слышал что в gcc где-то есть, но не нашел.
C++ Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #include <iostream> #include <set> #include <iterator> #include <fstream> #include <string> #include <algorithm> int main() { std::fstream ifs("in.txt", std::ios::in), ofs("out.txt", std::ios::out); подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
10.06.2013, 01:37     как передать struct в list
Двумерный массив создается примерно таким образом?
C++
1
2
3
4
5
6
7
8
9
10
    _person **persons = new _person*[3];
    for (int i = 0; i != 3; ++i)
        persons[i] = new _person[3];
 
    for (int i = 0; i != 3; ++i)
        for (int j = 0; j != 3; ++j) {
            persons[i][j].id = j * j * i;
            strcpy(persons[i][j].name, "Name");
            persons[i][j].age = j * i;
        }
Если да, то дело в том, что строки массива разбросаны по памяти, они не в одном блоке, так что запись:
C++
1
list <person> ls(group,group+getSizeGroup(group));
неверна.

Добавлено через 5 минут

Думаю, что хранить указатели будет разумнее. Вот маленький пример:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cstring>
#include <list>
 
using namespace std;
 
typedef struct _person
{
    long id;
    char name[30];
    size_t age;
};
 
int main()
{
    _person **persons = new _person*[3];
    for (int i = 0; i != 3; ++i)
        persons[i] = new _person[3];
 
    for (int i = 0; i != 3; ++i)
        for (int j = 0; j != 3; ++j) {
            persons[i][j].id = j * j * i;
            strcpy(persons[i][j].name, "Name");
            persons[i][j].age = j * i;
        }
 
    list<_person*> lst;
 
    for (int i = 0; i != 3; ++i)
        for (int j = 0; j != 3; ++j) 
            lst.push_back(&persons[i][j]);
 
    for (const auto &x : lst)
        cout << "id = " << x->id << endl
             << "name = " << x->name << endl
             << x->age << endl << endl;
 
    for (int i = 0; i != 3; ++i)
        delete[] persons[i];
    delete[] persons;
    
    return 0;
}
 
Текущее время: 11:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru