Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> доступ в vector'е "сложных" объектов, operator [] 
V
    Опции темы
Static
Дата 15.7.2009, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: нет
Всего: 2



Я уразумел, что в первых постах написал бред. Не знал, тупил и т.п.
Теперь стараюсь внимательно и без ошибок написать пример:
Код

struct tri_mark
{
float x;
float y;
float z;
};

struct Compound
{
tri_mark *coord1;
tri_mark *coord2;
};
...
...

int num = 10;
std::vector<Compound*> compounds;
Compound *comp;

for (int i=0;i<num;++i)
        {
         comp = new Compound;
         comp->coord1 = new tri_mark[num];
         comp->coord2 = new tri_mark[num];

         fscanf(fin, "%f %f %f", &comp->coord1[i].x, &comp->coord1[i].y, &comp->coord1[i].z);
         fscanf(fin, "%f %f %f", &comp->coord2[i].x, &comp->coord2[i].y, &comp->coord2[i].z);
         compounds.push_back(comp); // тут меня смутило, что push_back создает копию. Не сразу дошло, 
                                                          // что копия указателя - тот же указатель :(
         }



Так лучше? Теперь не возникает проблем с обращением по индексу, память вроде бы везде выделяется и не теряется.
Еще раз прошу прощения за столь явное нубство.

З.ы. первоначальную проблему решил немного по-другому, но хочу разобраться в данном вопросе.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
bsa
Дата 15.7.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Static, хочу порекомендовать тебя использовать один стиль для написания названий типов, функций, методов, переменных. Прочто когда у тебя часть типов с большой буквы, а часть с маленькой, то не очень красиво выходит.
Лично я считаю, что лучший вариант - CamelCase; типы с большой буквы (MyCoolType), функции/методы/переменных - с маленькой (mySuperMethod). Приватные атрибуты классов - с маленькой и в конце подчеркивание (myVar_).
Фигурные скобки и отступы расставляй согласно какому-нибудь правилу форматирования, а не мешай все в одну кучу абы как.
PM   Вверх
Static
Дата 15.7.2009, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: нет
Всего: 2



Цитата(bsa @  15.7.2009,  15:50 Найти цитируемый пост)
хочу порекомендовать тебя использовать

не надо меня использовать smile
Насчет стиля, ок, учту.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
mes
Дата 15.7.2009, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Static @  15.7.2009,  10:20 Найти цитируемый пост)
struct Compound
{
tri_mark *coord1;
tri_mark *coord2;
};


при использовании такой структуры, приходится копировать ее вручную. Поэтому лучше оформить как класс с копи конструктором.



--------------------
PM MAIL WWW   Вверх
Static
Дата 16.7.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: нет
Всего: 2



Цитата(mes @  15.7.2009,  16:21 Найти цитируемый пост)
при использовании такой структуры, приходится копировать ее вручную. Поэтому лучше оформить как класс с копи конструктором.

 smile Я у себя так и сделал.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.