Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 159 • Страница 5 из 8<  1  2  3  4  5  6  7  8  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
r9500_nonpro
Объясняю еще раз! :)
Касаемо вектора. Мне надо создать статический экземпляр вектора заполненый элементами проинициализированными какими-то значениями.
Есть два способа.
1. vector<struct_t> v(6);
for(vector<struct_t>::iterator it = v.begin();it!=v.end();it++)
*it = startupvalue;
2. Указать в векторе конструктор для типа. Как это делаю я.
3. Выполнить инициализацию в конструкторе по умолчанию. По некоторым причинам меня это не устраивает.

Насчет "компилер материться". Я использовал BCB 5.0, на этапе компиляции он спокойно воспринимал этот синтаксис.
Возможно причина в реализации STL.

_________________
Цель жизни - d20 по жизни...



Партнер
 

Junior
Статус: Не в сети
Регистрация: 24.03.2004
у меня 6й на ваш синтакс матюкается.

Код:
struct test_t {
int *buffer;
test_t(int *value, const size_t valueSize=666)
{buffer = new int(valueSize);/*(int*)malloc(valueSize*sizeof(int))*/; buffer[valueSize-1]=valueSize;
ShowMessage("1 "+AnsiString(valueSize));};
test_t(const int value=5)
{buffer = new int(value);ShowMessage("2 "+AnsiString(value));};
inline ~test_t()
{/*free(buffer);*/ delete [] buffer;ShowMessage("dest");}
};

void __fastcall TForm1::Button1Click(TObject *Sender)
{
vector <test_t> z(1,test_t(5));
z.clear();
ShowMessage("ok");
}


действительно лезет баг.

Цитата:
Constructors

explicit vector(const Allocator& alloc = Allocator());

The default constructor. Creates a vector of length zero. The vector will use the allocator alloc for all storage management.

explicit vector(size_type n);

Creates a vector of length n, containing n copies of the default value for type T. Requires that T have a default constructor. The vector will use the allocator Allocator() for all storage management.

vector(size_type n, const T& value,
const Allocator& alloc = Allocator());


Creates a vector of length n, containing n copies of value. The vector will use the allocator alloc for all storage management.

vector(const vector<T, Allocator>& x);

Creates a copy of x.

template <class InputIterator>
vector(InputIterator first, InputIterator last,
const Allocator& alloc = Allocator());

Creates a vector of length last - first, filled with all values obtained by dereferencing the InputIterators on the range [first, last). The vector will use the allocator alloc for all storage management.


а ведь должен бы работать по идее.

Код:
struct test_t {
int *buffer;
test_t(int *value, const size_t valueSize=666)
        {buffer=new int(valueSize);
        buffer[0]=valueSize;};
test_t(const int value=5)
        {buffer = new int(value);
        buffer[0]=value;};
~test_t()
        {delete [] buffer;}
};

void __fastcall TForm1::Button1Click(TObject *Sender)
{
test_t *a=new test_t(0,2);
vector <test_t> z(5,*a);
ShowMessage(z.begin()->buffer[0]);
free(a);//не вызывя деструктор, киляем темповый объект.
//delete a;
ShowMessage(z.begin()->buffer[0]);
z.begin()->buffer[0]=10;
ShowMessage(z.begin()->buffer[0]);
ShowMessage(z.at(4).buffer[0]);
z.clear();
}

зато так работает.


Последний раз редактировалось r9500_nonpro 20.05.2004 8:30, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 12.02.2004
Откуда: г. Новосибирск
Цитата:
А ты извратами типа gc классов не пользуешься? Т.е. тебе .NET Framework не требуется?

Нет... да и вдобавок на Win98 он тоже не стоял....
А что такого извратного в __gc?
Наверное отличается менеджер памяти
Интересно есть какая-нить статистика работоспособности программ под разными операционками?

Цитата:
Все косяки делают РУКИ , а не компиляторы.

Ага, а компиляторы кто делает? те же руки!


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Мне тут писали, что этот код убивает компилер :)
Цитата:
d:\Development\VC_All\LJCubeModel\Vectors.h(12): fatal error C1001: INTERNAL
COMPILER ERROR
(compiler file 'msc1.cpp', line 2701)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more
information

>> CODE BEGINS HERE <<

pragma once

template<class _Algorithm, class _BoundaryRule>
class CParticleSystem: public _Algorithm, public _BoundaryRule
{
public:
CParticleSystem(int, double);
~CParticleSystem(void);
protected:
virtual CalculateNextStep(double);
};

template<class _Algorithm, class _BoundaryRule>
CParticleSystem<_Algorithm, _BoundaryRule>::CParticleSystem(int
nParticleCount, double dMaximumSize) :
CSystemModel(nParticleCount, dMaximumSize),
_Algorithm(nParticleCount, dMaximumSize),
_BoundaryRule(nParticleCount, dMaximumSize)
{
}

template<class _Algorithm, class _BoundaryRule>
CParticleSystem<_Algorithm, _BoundaryRule>::CalculateNextStep(double
dTimeSpan) :
_Algorithm::CalculateNextStep(dTimeSpan)
{

}

template<class _Algorithm, class _BoundaryRule>
CParticleSystem<_Algorithm, _BoundaryRule>::~CParticleSystem()
{
~_Algorithm;
~_BoundaryRule;
}

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
r9500_nonpro
Работает (с иннициализацией через вектор).
Но я поступил проще - сменил компилятор. :)

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 15.03.2004
Откуда: Moscu.Moscow
А чего про Паскаль обычный никто не говорит?
или все кому что по-проще уже в консольном на Дельфе пишут?

_________________
http://www.blog.webjustnow.com/;
TSC! Russia {Beastriker at Folding@Home}


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Матвеев Иван Владимирович Ну а зачем юзать старый паскаль если можно и на Delphi писать причем имея больше возможностей!


 

Member
Статус: Не в сети
Регистрация: 08.05.2004
Откуда: Novosibirsk
Кто нидь GDI+ пользовался - вот муть жестокая!!! После этого как то о разработчиках VS(а MSDN в особенности) странно думать стал))) Надо ж такое выдумать. А потом ТАК документировать!!!!!!!!!!!!!!!!!!!!!!!!

_________________
All Cool, Style In All


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
После этого как то о разработчиках VS(а MSDN в особенности) странно думать стал))) Надо ж такое выдумать. А потом ТАК документировать!!!!!!!!!!!!!!!!!!!!!!!!

Весь Windows построен на таких идиотизмах! :)


 

Member
Статус: Не в сети
Регистрация: 08.05.2004
Откуда: Novosibirsk
Матвеев Иван Владимирович а вы на каком курсе? Люди просто-Паскалем болеют на 1-2 курсе))))))))))

_________________
All Cool, Style In All


 

Вы сприте о разных вещах.. Delphi используется чаще всего для написания баз данных, прикладных пргограм, по моему мнению в ней очень удобная среда разработки...и это уже давно не надстройка над Паскалем. Что касается размеров, в Делфи действительно они побольше получаются (за счет использования VCL), и поэтому Delphi для нета не всегда является лутшим вариантом, но и этого можно избежать (т.е. не использовать VCl), а лишь опираясь на API и функций тех библиотек с которыми вы работаете, например OpenGL (как раз я этим и занимаюсь). Еще бы хотел сказать что все таки скорость работы откомп. файлов у C++ быстрее и ничго тут не поделаешь... как ни прискорбно мне это говорить при все моей любви к Delphi


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Linux_red
Цитата:
файлов у C++ быстрее и ничго тут не поделаешь... как ни прискорбно мне это говорить при все моей любви к Delphi

Доказательства в студию. Компиляторы от Borlanda всегда славились отличной оптимизацией и отличной скоростью! так что не надо :), если что и пашет медленно то виноват програмист.


 

Member
Статус: Не в сети
Регистрация: 01.08.2003
Программист-программистом, а системное ПО на паскакале не пишется, и понятно почему...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
смотря какое системное ПО ты имееш в виду. Драйвера конечно не пишутся, но управление чем-то на любом уровне запросто. Приемров очень много, и основные примеры твикеры :).

Я же хочу понять вот такие слова.
Цитата:
Еще бы хотел сказать что все таки скорость работы откомп. файлов у C++ быстрее и ничго тут не поделаешь... как ни прискорбно мне это говорить при все моей любви к Delphi

Я пока не сталкивался с такими делами :)


 

Member
Статус: Не в сети
Регистрация: 08.05.2004
Откуда: Novosibirsk
Ray Adams код, написанный под VC, гораздо быстрее работает - это факт. Не вижу ничего непонятного!!!!!

_________________
All Cool, Style In All


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Arcanoid Фактов не вижу, вот что не понятно. Если бросаешся такими заявлениями будь добр приведи пример!


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Arcanoid
Не согласен.
Согласен, что качество кода у VC 6 лучше, чем у C Builder,
но Delphi зачастую дает более оптимальный код.

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 15.03.2004
Откуда: Moscu.Moscow
Arcanoid Ну ладно...
для винды, кончено, паскаль - полное П..
но если выбирать между С и Паскалем под дос,
то я выберу паскаль...
роднее как-то..
Arcanoid см. мой профиль ;-)
и потом, я же не говорю, что некоторые там С болеют по дос ;-)
я лично юзаю Паскаль и Дельфи и все, панимаешь, у меня ок! :-)

_________________
http://www.blog.webjustnow.com/;
TSC! Russia {Beastriker at Folding@Home}


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Матвеев Иван Владимирович
И для винды паскаль нормально, только вот, VCL увы подкачал.. :(
Лучше вместо него хотя бы COL использовать

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 26.05.2004
Откуда: Kharkov.UA
А как вам такой аргумент?
http://sourceforge.net/projects/quake2delphi

Скачал, скомпилил 7-й Делфей, размер ref_gl.dll - на ~30 кил меньше оригинала (v3.21), gamex86.dll -на ~ 50 кил меньше оригинала, экзешник, правда немного больше:-)
Шпилил все выходные, работает все стабильно и быстро (по крайней мере timerefresh выдает одно и тоже, что в оригинале, что в порте).
Делайте выводы, господа :-)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 159 • Страница 5 из 8<  1  2  3  4  5  6  7  8  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan