Re[3]: Инициализация массива при создании его через new
От: sokel Россия  
Дата: 07.04.09 07:26
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Скорость работы с такими массивами int i[100] и vector<int> iv различается в дестяки раз.


Исходя из вопроса, используется всё таки массив, созданный через new, а это уже совсем не то же самое что массив, созданный на стеке.

Скорость работы не отличается (да и не с чего ей отличаться). А вот скорость создания/уничтожения — тут да, но опять таки, используется массив, выделяемый через стандартный new, так что, скорей всего, правильный вектор будет быстрее элементарно за счёт использования правильного аллокатора.

А>А памяти лишней сколько жрется.


А сколько? Динамическое выделение предполагает относительно большой объём, так что на служебные данные вектора вроде размера и т.п. (собственно sizeof(vector)) можно не обращать внимания. Конечно, если вектор не будет зарезервирован, возможно памяти будет использовано больше. Но размер тебе известен, так что reserve в руки...
Re[7]: Не запретить ли анонимов и в профильных форумах?
От: Lorenzo_LAMAS  
Дата: 07.04.09 07:27
Оценка: +1 :)
А>Давафате дебангалориться, пора уже...

Это вы на вашем родном, индусском?
Of course, the code must be complete enough to compile and link.
Re[6]: Инициализация массива при создании его через new
От: Аноним  
Дата: 07.04.09 07:32
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

А>>О люди, хочу что-бы народ извинился.

L_L>Ну-ну.

Что ну-ну...

ЛНС?

L_L>А почему у вас вектор сравнивается со стековым массивом, а не с массивом в динамической памяти?


А почему нельзя, что-ли. Чем такие массивы провинились.

Давайте, говрите, что-то типа — ай-ай как мы были не правы. — Это полезно, на самом деле.
Re[4]: Инициализация массива при создании его через new
От: catBasilio  
Дата: 07.04.09 07:32
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, catBasilio, Вы писали:


B>>Зачем так сложно?


B>>
B>>#define ARRAY_LENGTH(x) sizeof(x) / sizeof(x[0])

B>>void foo()
B>>{
B>>  static const int initValues[] = { 1, 2, 3 };
B>>  std::vector<int> array(initValues, initValies + ARRAY_LENGTH(initValues));
B>>}
B>>


E>Этот код делает другое...




void foo()
{
  static const int initValues[] = { 1, 2, 3 };
  std::vector<int> array(5);
  array.insert(array.begin(), initValues, initValies + ARRAY_LENGTH(initValues));
}
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Re[7]: Инициализация массива при создании его через new
От: Lorenzo_LAMAS  
Дата: 07.04.09 07:35
Оценка: :)
А>А почему нельзя, что-ли. Чем такие массивы провинились.

А, т.е. вы не понимаете разницу между вектором и встроенным массивом? Ну-ну.

А>Давайте, говрите, что-то типа — ай-ай как мы были не правы. — Это полезно, на самом деле.


Уговорили. Ай-ай, как вы были не правы.
Of course, the code must be complete enough to compile and link.
Re[8]: Не запретить ли анонимов и в профильных форумах?
От: Аноним  
Дата: 07.04.09 07:37
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

А>>Давафате дебангалориться, пора уже...


L_L>Это вы на вашем родном, индусском?


Тафайте-тафайте, я уже заждался.
Re[4]: Инициализация массива при создании его через new
От: sokel Россия  
Дата: 07.04.09 07:38
Оценка:
Здравствуйте, sokel, Вы писали:

хехе, но с другой стороны, вопрос о списке инициализации, так что массив предположительно небольшой, тогда зачем нужен new?
Re[6]: Инициализация массива при создании его через new
От: Аноним  
Дата: 07.04.09 07:42
Оценка: :)
Здравствуйте, catBasilio, Вы писали:

А>>О люди, хочу что-бы народ извинился.


А>>
А>>... многа бреда поскипано.
А>>


Бреда? : ) Люди, ну остановитесь же — вы невладете вопросом, это был релиз... Представляю как Вы огорошены. Но я рад....

Я такой злой, так как меня однажды один из тутошних завсегдатаев-умники завалил на тестировании при преме на работу — теперь я отигрываюсь. Типа изобразал из себя умного — и знающего нечто неведомое простым смертным — ТЕМПЛЕЙТЫ....
Re[5]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 07:44
Оценка:
Здравствуйте, catBasilio, Вы писали:

B>
B>void foo()
B>{
B>  static const int initValues[] = { 1, 2, 3 };
B>  std::vector<int> array(5);
B>  array.insert(array.begin(), initValues, initValies + ARRAY_LENGTH(initValues));
B>}
B>


Этот код тоже не то делает. Да ещё и тормозной, к тому же...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 07:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>очень смешно — но как Вы себе представляете отличить один ноль от другого? '0' — вот этот ноль уж будьте любезны трактовать как 0 интовый, а вот этот '0' , как указатель на 0x123412344321AB00 ...


Ну стандарт почитай...
Я же говорю, что ты С++ плохо знаешь...
А>Вперед.
Чисто для справки. Всё что ниже -- валидно...
void foo( void* );
void foo( int );

void bar()
{
    int i = 0;
    int* p = 0;

    void (*Pf)( int ) = foo;
}


А>Стратус пишет книжки для чайников, Вы чайники?

Обычно неаккуратное использование кванторов всеобщности характерно для недоучек...
А что касается автора С++, то он разные книжки написал и пишет. Некоторые вовсе и не для чайников. Хотя я лично по языку С++ справляюсь в стандарте, чего и тебе советую.. Например изучить что там написано про нулевые указатели (как в стандарте С, так и в стандарте С++)

E>>Страуструп, кстати, вряд ли идиот, в отличии от некоторых коллег...

А>Да, не идиот, я не прав. Извини Статус.
Так ты ещё и со "Статусом" беседуешь? Бывает...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Инициализация массива при создании его через new
От: Аноним  
Дата: 07.04.09 07:52
Оценка: -1 :)
Здравствуйте, Lorenzo_LAMAS, Вы писали:

А>>
А>> int *i=new int(0x33);
А>>


А>>Прекрасно работает.

L_L>А как это связано с инициализацией элементов массива, о чем и шла речь? Вы глупости и дурака лучше в зеркале поищите.

Эй!


Нет, как и сказал Андрей, только ().


Это чьи слова ? Правильно, ваши. Вы оказались не правы, а мне на вид ставили.


Это ответ также и на :

А, т.е. вы не понимаете разницу между вектором и встроенным массивом? Ну-ну.


Я понимаю, А вы нет! И это вы отлично уже продемонмтрировали не раз — мне собрать ваши цитаты?
Re[5]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 07:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>О люди, хочу что-бы народ извинился.


О Аноним!
1) Зарегься
2) Иди потом в народ...


А вообще-то std::vector не умеет хранить буфер в объекте. Это массив в динамической памяти, то есть аналог new int[0x1000]... а вовсе и не автоматического массива...
Если уж меряться, то честно, а то сравнил, понимаешь, попу с пальцем...

Кстати, опции компилятора были какие?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 07:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я такой злой, так как меня однажды один из тутошних завсегдатаев-умники завалил на тестировании при преме на работу — теперь я отигрываюсь. Типа изобразал из себя умного — и знающего нечто неведомое простым смертным — ТЕМПЛЕЙТЫ....


А что, на заботать ТЕМПЛЕЙТЫ кебы не хватило?
Тоже мне, нашёл чем хвастаться...

Таки, кстати, что за опции-то у компилятора были?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 07:57
Оценка:
Здравствуйте, sokel, Вы писали:

S>хехе, но с другой стороны, вопрос о списке инициализации, так что массив предположительно небольшой, тогда зачем нужен new?


В чём суть проблемы топикстартера я тоже не понимаю...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 07:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нет, я все глупости найду и ткну — ребята, а вы случайно на работу принимая народ не тестируете? С такими знаниями, эх... жуть, куда страна катится!!!


А>
А> int *i=new int(0x33);
А>


А>Прекрасно работает.


Что-то мне таки кажется, что я бы тебя тоже завернул
1) Не умеешь себя вести.
2) При этом очень невнимательный и не понимаешь что у тебя спросили...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: Инициализация массива при создании его через new
От: Аноним  
Дата: 07.04.09 07:59
Оценка: :)
Здравствуйте, Erop, Вы писали:

А>>Стратус пишет книжки для чайников, Вы чайники?

E>Обычно неаккуратное использование кванторов всеобщности характерно для недоучек...
E>А что касается автора С++, то он разные книжки написал и пишет. Некоторые вовсе и не для чайников. Хотя я лично по языку С++ справляюсь в стандарте, чего и тебе советую.. Например изучить что там написано про нулевые указатели (как в стандарте С, так и в стандарте С++)

E>>>Страуструп, кстати, вряд ли идиот, в отличии от некоторых коллег...

А>>Да, не идиот, я не прав. Извини Стратус.
E>Так ты ещё и со "Статусом" беседуешь? Бывает...

ЕРОП, идите в политику, там вас заждались... И там демогогте.

Стандарт описывает не существующий указатель. И не описывает что это должно быть 0... Все мне надо работать, а не заниматься выигрыванием спров... Я уже получил удовольствие, от того что показал скриптовикам с векторами того что они не знали но проверяли знания у людей при приеме на работу. Выграть спор не есть моя цель, поэтому не старайтесь, я обязательно буду применять стандарные ходы, не позволяющие выграть спор будучи не правым. А вообще, скажите, вам что делать нечего? Если вы постоянно сползаете на демагигию?

Все всё поняли.
Re[5]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 08:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Поэтому вектора и прочий шит не подходит — медленно.


Не понятно. По идее вектор же может зарезервировать место, и потом его не менять уже. Ты всякие там insert/erase не зови просто и не добавляй больше, чем зарезервировал...

Правда у std::vector есть другие косяки и проблемы с производительностью, ну так массивов-то куча просто под С++ написали уже...

Но это всё не про то. Ты что-то про инициализацию говорил?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[9]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 08:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Стандарт описывает не существующий указатель. И не описывает что это должно быть 0...

Цитаты привести не затруднит?


А>Все мне надо работать, а не заниматься выигрыванием спров...

Ну слил, так слил... Хамить было не обязательно...

А>А вообще, скажите, вам что делать нечего? Если вы постоянно сползаете на демагигию?

Э-э-э? Ты про это?

очень смешно — но как Вы себе представляете отличить один ноль от другого? '0' — вот этот ноль уж будьте любезны трактовать как 0 интовый, а вот этот '0' , как указатель на 0x123412344321AB00 ...

Вперед.

Стратус пишет книжки для чайников, Вы чайники?


А>Все всё поняли.

Уже давно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Инициализация массива при создании его через new
От: Аноним  
Дата: 07.04.09 08:06
Оценка: :)
Здравствуйте, Erop, Вы писали:
А>>Нет, я все глупости найду и ткну — ребята, а вы случайно на работу принимая народ не тестируете? С такими знаниями, эх... жуть, куда страна катится!!!
А>>
А>> int *i=new int(0x33);
А>>

А>>Прекрасно работает.

E>Что-то мне таки кажется, что я бы тебя тоже завернул

E>1) Не умеешь себя вести.
E>2) При этом очень невнимательный и не понимаешь что у тебя спросили...

Ага, юлим — рыба редкой породы, обладает удивительным свойством вылезать из ловушек расставленных рыбаками.
Re[7]: Инициализация массива при создании его через new
От: Erop Россия  
Дата: 07.04.09 08:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ага, юлим — рыба редкой породы, обладает удивительным свойством вылезать из ловушек расставленных рыбаками.


Самокритичный, ты наш!!!
Топик посвящён инициализации аллокируемого по new МАССИВА!!!
Ферштейн?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.