LINUX.ORG.RU

Ответ на: комментарий от random_linux_user

Я думаю, автор имел ввиду так:

int n; cin >> n;
int a[n];
В g++ так можно (только gdb таких массивов не понимает). Массив создается в стеке.

vector - совсем другое, new - в куче, list - вообще не в тему.

Deleted
()
Ответ на: комментарий от alexeiz

Это все супер, я рад за alloc. На вопрос можно было ответить «Да/Нет», Вы же, написав целых два предложения, не сделали этого...

slyjoeh ★★★
()
Ответ на: комментарий от alexeiz

Зато на стеке нет проблемм кучи (медленное выделение, явное освобождение, фрагментация, кэш-промахи). Поэтому если массив не такой большой - на стеке лучше.

Deleted
()
Ответ на: комментарий от stevejobs

в первом случае stl не юзается, а во втором - юзается.

slyjoeh ★★★
()
Ответ на: комментарий от stevejobs

Выделение на стеке. Вектор выделяется в куче.

encyrtid ★★★★★
()
Ответ на: комментарий от slyjoeh

ЕМНИП, в С++ никогда не было такой возможност, только в С99.

encyrtid ★★★★★
()
Ответ на: комментарий от slyjoeh

Кстати в с++ уже можно объявлять массив с размером, неизвестным во время компиляции?

int* a = new int[n];

где n - переменная, которая может быть неизвестна на этапе компиляции. И объявили, и определили. Или религия не позволяет?

Sadler ★★★
()
Ответ на: комментарий от random_linux_user

> Или лямбды. Я себе уже не представляю, как все это время C++'ники обходились обычными указателями на функции без полноценных ф-ций высших порядков.

Полноценные? В свете ручного управления памятью, крайне сомнительно.

geekless ★★
()
Ответ на: комментарий от AIv

> Но тем не менее, есть задачи где альтернативы С++ не существует, именно потому что там есть и ООП, и шаблоны, и всякая низкоуровневая фигня.

Во всех этих задачах достаточно «Си с классами». Си++ как удобная обертка над Си имеет право на существование. Си++ как полноценный язык общего назначения — убивать, убивать, убивать.

geekless ★★
()
Ответ на: комментарий от stevejobs

> для си с классами все же нужна нормальная стандартная библиотека, ты знаешь такую?

Как показывает практика, для каждого масштабного проекта на Си/Си++ «стандартная библиотека» пишется своя. «У нас есть такая традиция, каждый год 31 декабря мы с друзьями ходи^Wпишем новую реализацию class String.»

geekless ★★
()
Ответ на: комментарий от geekless

Я че та не улавливаю этих тонких тонкостей... я конечно дилетант, знаю два ЯП - питон и С++. Мне хватает... что есть полноценный ЯП общего назначения и чем он отличается от неплноценного?

AIv ★★★★★
()
Ответ на: комментарий от Deleted

особенно доставляет вывод программы:

#include <stdio.h>

void qwe(int x)
{
    char arr[x];
    printf("%lu\n", sizeof(arr));
}

int main()
{
   qwe(-10);
   return 69;
}

mmarkk
()
Ответ на: комментарий от stevejobs

STL вообще не предназначена для реального использования, а только для фапания на то, как при помощи шаблонов можно намутить очередной контейнер.

geekless ★★
()
Ответ на: комментарий от geekless

> STL вообще не предназначена для реального использования,

Епрст... я и не ззнал. Больше никогда не буду ее использовать!;-)

AIv ★★★★★
()
Ответ на: комментарий от geekless

Не для каждого, а только в тех, где собираются старперы, которым проще свой велосипед написать, чем разобраться в «новом» для них stl'е. Как правило в результате получается говно.

Reset ★★★★★
()
Ответ на: комментарий от geekless

> STL вообще не предназначена для реального использования

Можно взглянуть на библиотеку, которую вы используете вместо STL?

alexeiz
()
Ответ на: комментарий от random_linux_user

> Или лямбды. Я себе уже не представляю, как все это время C++'ники обходились обычными указателями на функции без полноценных ф-ций высших порядков.

Я таки подозреваю, что они ещё хлебнут горя с лямбдами и освобождением памяти.

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

> Я таки подозреваю, что они ещё хлебнут горя с лямбдами и освобождением памяти.

Зато книг-то сколько можно написать по теме, представьте только. Кому нужны все эти джавадотнеты или лиспопитоны, когда тут такой простор для заколачивания бабла.

geekless ★★
()
Ответ на: комментарий от geekless

> Слава богу, мне уже давно не приходится использовать ни STL, ни прочие приплюснутые костыли.

Ну так я о чем и спрашиваю. Что ты используешь вместо STL и прочих приплюснутых костылей?

alexeiz
()
Ответ на: комментарий от alexeiz

> Он намекает, что у него там какая-то неведомая супер-библиотека для С с Классами.

Фигасе ты обкурился. Я вроде тебе прямым текстом сказал, что больше не пишу на крестах.

geekless ★★
()
Ответ на: комментарий от alexeiz

Аааа... я сразу и не понял. Там наверное чистый С, но руками сделана динамическая типизация, ФП и все-все-все... Я даже смотреть боюсь - ослепну от такого благолепия.

AIv ★★★★★
()
Ответ на: комментарий от alexeiz

> Твои комментарии как-то сразу стали для меня гораздо менее интересными.

nobody cares

geekless ★★
()
Ответ на: комментарий от random_linux_user

>Юзать С++ во времена, когда JVM реактивен и существует стопицот менее долбанутых языков как-то странно.
Тем не менее HotSpot и OpenJDK совершенно непонятно зачем весьма плотно используют С++. Насчет JRockIt не скажу, у меня нет информации Си там или Си++.

Tark ★★
()
Ответ на: комментарий от Raving_Zealot

Что ты, забудь об этом, пиши на васике.

AIv ★★★★★
()
Ответ на: комментарий от random_linux_user

Как можно пользоваться языком, в котором указатель на char имеет столько подводных камней?

как-как, квалификацию свою повышать (не повышается? VB ждёт тебя)

и char* - это всё же c-style

Или шаблоны. Это просто верх простоты и понятности для программиста.

именно так, что там может быть непонятно?

STL? Не самая лучшая библиотека контейнеров.

сможешь назвать самую лучшую? :)

Boost? Очень тяжелый и bloated.

теоретик :)

Tuples? Boost не хочу тянуть. Свое писать?

1. весь буст тянуть не надо, достаточно одного хедера
2. напиши, там мало строк

Статический анализ кода? Тут вообще промолчать можно.

промолчи

Даже в Trolltech понимали все недостатки C++ и сделали meta object compiler над C++ обычным.

1. что значит даже?
2. ну сделали, и что?

shty ★★★★★
()
Ответ на: комментарий от random_linux_user

const std::string

ну, буратино, что сказать

shty ★★★★★
()
Ответ на: комментарий от jcd

> для 100% этих задач есть С.

Хочу Вас расстроить - для 100% задач к-е решаем мы (числ. моделирование) нужен именно С++ (классы и шаблоны).

AIv ★★★★★
()
Ответ на: комментарий от stevejobs

arr[n] - на стеке, вектор - в куче. А еще вектор - таки STL-ный контейнер со всеми вытекающими последствиями, а arr[n] - простой сишный массив.

Deleted
()
Ответ на: комментарий от geekless

Покажите пример, в котором ручное выделение мешает лямбдам. Ну и есть auto_ptr и, начиная с 0x - shared_ptr

Deleted
()
Ответ на: комментарий от geekless

Си++ как полноценный язык общего назначения

именно так, с чем не согласен?

shty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.