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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> array, vector или new...[], что лучше??? 
:(
    Опции темы
likehood
Дата 22.4.2007, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


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

Репутация: 8
Всего: 24



Цитата(Anikmar @  22.4.2007,  19:49 Найти цитируемый пост)
Поверьте, даром ничего не бывает

В том-то и фишка, что в С++ многие вещи даются "даром" (ну или почти), чего не скажешь о многих других языках. В этом и заключается его сила. По-сути, целью создания языка С++ было создание высокоуровневого ОО-языка, не уступающего в производительности языку Си. Именно С++ впервые показал, что ООП не обязательно должно быть дорогим удовольствием.
PM MAIL   Вверх
Anikmar
Дата 22.4.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Daevaorn @  22.4.2007,  18:52 Найти цитируемый пост)
В этой фразе явно видно непонимание сути inline. Что такое "дополнительная память"?

Код программы тоже в памяти находится, если вы забыли.
inline функция - это функция, непосредственно встраиваемая в код программы. Этим самым уменьшается время на передачу параметров, но увеличивается размер программы и занимаемая ей ПАМЯТЬ
PM MAIL ICQ   Вверх
likehood
Дата 22.4.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


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

Репутация: 8
Всего: 24



Daevaorn имел в виду, что в данном случае нет дополнительного расхода памяти по-сравнению с обычным массивом. Кстати, это хорошо видно из ассемблерного листинга.

Это сообщение отредактировал(а) likehood - 22.4.2007, 19:28
PM MAIL   Вверх
Void
Дата 22.4.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 40
Всего: 173



Цитата(Anikmar @  22.4.2007,  21:13 Найти цитируемый пост)
inline функция - это функция, непосредственно встраиваемая в код программы. Этим самым уменьшается время на передачу параметров, но увеличивается размер программы и занимаемая ей ПАМЯТЬ 

Угу. Только оператор [] вектора транслируется в 1-2 машинные команды — куда меньше, чем запихивание параметров в стек, вызов, выполнение операции и возврат.

Все возможные причины, по которым вектор может быть медленнее, уже перечислили. operator [] к ним не относится.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Daevaorn
Дата 22.4.2007, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 51
Всего: 70



Цитата(Anikmar @  22.4.2007,  20:13 Найти цитируемый пост)
inline функция - это функция, непосредственно встраиваемая в код программы. Этим самым уменьшается время на передачу параметров, но увеличивается размер программы и занимаемая ей ПАМЯТЬ

Таак, теперь подумай, если тот код который скрывается за vector::operator[] встроить в место вызова(нет ни передачи параметров, нет вызова функции, нет создания фрейма стека, нет передачи результата), то что получится? Правильно, сокращения расхода "памяти" и соответсвенно увеличение скорости. Вот так вот. Посмотри, кстати, asm листинг и прозрейsmile
PM MAIL WWW   Вверх
Anikmar
Дата 22.4.2007, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Daevaorn @  22.4.2007,  19:42 Найти цитируемый пост)
Таак, теперь подумай, если тот код который скрывается за vector::operator[] встроить в место вызова(нет ни передачи параметров, нет вызова функции, нет создания фрейма стека, нет передачи результата), то что получится? Правильно, сокращения расхода "памяти" и соответсвенно увеличение скорости. Вот так вот. Посмотри, кстати, asm листинг и прозрей 

А если вызовов 20?
Мы же сравниваем не просто однострочную iniline функцию с вызовом через стек и вызовом inline?

Мы сравниваем конкретную функцию inline с командой непосредственно взятия данных из массива. Эта inline функция практически это и делает! Посмотрите на ее код - я же ее привел. И сравните с кодом a = b[i].

Добавьте туда код остальных методов вектора (даже если ими не пользоваться (кстати, а зачем тогда вектор, правда?) - они что, в воздухе висят? Теперь добавим, что у нас есть вектор int и вектор float - 2 совершенно разных класса скомпилятся. Со всем своим функционалом (которым можно не пользоваться).

Полноте - чудес на свете не бывает, еще раз повторю. Просто к памяти сейчас отношение такое - типа ее много. И получаем операционки, которые на ядро 512 требуют - зато все удобно. Раз схалявил - два схалявил и получаем экзешники по 10 метров с функционалом, "которым необязательно пользоваться".

likehood,  Daevaorn,

Я немного не понимаю суть спора: неужели вы серьезно считаете, что функционал STL не потребляет дополнительных ресурсов? С чем вы спорите? 
Мое мнение: STL удобна, но расплачиваться приходится некоторым перерасходом ресурсов (памяти, скорости или того и другого).
Ваше мнение: Ни фига - этот функционал ничего не пожирает, он достается даром. Т.е. все килобайты исходного кода STL - это все ерунда и ни памяти ни времени процессора она не отнимает.

Продолжать дискуссию я просто не вижу смысла. 

За удобства надо платить. И это закон жизни, а не только программирования. Отсюда правда вытекает еще один лозунг: надо постараться не платить за неудобства - это уже ближе к программированию.



PM MAIL ICQ   Вверх
Mayk
Дата 22.4.2007, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Код

int fill_vector( std::vector<int>& vec )
{   
    for( int i = 0; i < vec.size(); ++i ){
        vec[i] = i*i;
    }
}   
    
int fill_array( int* array, int size )
{   
    for( int i = 0; i < size; ++i ){
        array[i] = i*i;
    }
}


Цитата(Anikmar @  23.4.2007,  00:35 Найти цитируемый пост)

Ваше мнение: Ни фига - этот функционал ничего не пожирает, он достается даром. Т.е. все килобайты исходного кода STL - это все ерунда и ни памяти ни времени процессора она не отнимает.


прошу показать где происходит перерасход ресурсов на примере.
vimdiff запущенный на исходники даёт такую картину

Цитата


 _Z11fill_vectorRSt6vectorIiSaIiEE:                         |  _Z10fill_arrayPii:                                       
  .LFB500:                                                  |  .LFB501:                                                 
      pushl   %ebp                                          |      pushl   %ebp
  .LCFI3:                                                   |  .LCFI0:                                                  
      xorl    %edx, %edx                                    |  ---------------------------------------------------------
      movl    %esp, %ebp                                    |      movl    %esp, %ebp
  .LCFI4:                                                   |  .LCFI1:                                                  
      pushl   %ebx                                          |      pushl   %ebx
  .LCFI5:                                                   |  .LCFI2:                                                  
      movl    8(%ebp), %eax                                 |      movl    12(%ebp), %ecx                               
      movl    4(%eax), %ecx                                 |      movl    8(%ebp), %ebx                                
      movl    (%eax), %ebx                                  |      testl   %ecx, %ecx                                   
      subl    %ebx, %ecx                                    |      jle .L6                                              
      sarl    $2, %ecx                                      |      xorl    %edx, %edx                                   
      jmp .L10                                              |  ---------------------------------------------------------
      .p2align 4,,7                                         |      .p2align 4,,7
  .L11:                                                     |  .L4:                                                     
      movl    %edx, %eax                                    |      movl    %edx, %eax
      imull   %edx, %eax                                    |      imull   %edx, %eax
      movl    %eax, (%ebx,%edx,4)                           |      movl    %eax, (%ebx,%edx,4)
      incl    %edx                                          |      incl    %edx
  .L10:                                                     |      cmpl    %edx, %ecx                                   
      cmpl    %ecx, %edx                                    |      jne .L4                                              
      jb  .L11                                              |  .L6:                                                     
      popl    %ebx                                          |      popl    %ebx
      popl    %ebp                                          |      popl    %ebp
      ret                                                   |      ret



По мне так эти асмовые исходники примерно эквивалентны. Основной цикл так вообще один к одному.

Это сообщение отредактировал(а) Mayk - 22.4.2007, 21:07


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Daevaorn
Дата 22.4.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 51
Всего: 70



Цитата(Anikmar @  22.4.2007,  21:35 Найти цитируемый пост)
А если вызовов 20?

а какая разница сколько, с каждого inline'a экономим.
Цитата(Anikmar @  22.4.2007,  21:35 Найти цитируемый пост)
Мы же сравниваем не просто однострочную iniline функцию с вызовом через стек и вызовом inline?

мы сравниваем доступ к элементу
Цитата(Anikmar @  22.4.2007,  21:35 Найти цитируемый пост)
Посмотрите на ее код - я же ее привел. И сравните с кодом a = b[i].

ну и где тогда по твоему проигрывает вектор?
Цитата(Anikmar @  22.4.2007,  21:35 Найти цитируемый пост)
Добавьте туда код остальных методов вектора (даже если ими не пользоваться (кстати, а зачем тогда вектор, правда?) - они что, в воздухе висят? 

а ты знаешь сколько кода генерирует компилятор, допустим, для создания массива не из элементов POD типа? Для вызова деструкторов и т.д. Так что на этом фоне при POD типе в векторе, теряем минимум. А при не POD типе, ещё больший минимум
Цитата(Anikmar @  22.4.2007,  21:35 Найти цитируемый пост)
Теперь добавим, что у нас есть вектор int и вектор float - 2 совершенно разных класса скомпилятся. Со всем своим функционалом (которым можно не пользоваться).

Неа. Компилятор осуществляет merge'инг. Ну например метода vector::size(). И многих других
Цитата(Anikmar @  22.4.2007,  21:35 Найти цитируемый пост)
И получаем операционки, которые на ядро 512 требуют - зато все удобно. 

Программы делают люди и для людей, поэтому критерий "удобно" в этом случае приоритетный.
Цитата(Anikmar @  22.4.2007,  21:35 Найти цитируемый пост)
неужели вы серьезно считаете, что функционал STL не потребляет дополнительных ресурсов? С чем вы спорите?

Мы говорим про доступ к элементам. Ты же всячески уходишь от темы в "общую" болтовню
PM MAIL WWW   Вверх
vinter
Дата 22.4.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Mayk, у вектора на три машинных инструкции больше smile 
Цитата(Anikmar @  22.4.2007,  20:35 Найти цитируемый пост)
За удобства надо платить. И это закон жизни, а не только программирования. Отсюда правда вытекает еще один лозунг: надо постараться не платить за неудобства - это уже ближе к программированию.

 smile 
Vyacheslav(извини если исковеркал), что призван показать твой пример, что для использования вектора в этом контексте надо заюзать еще одну строку кода, так это ему не в плюс..


--------------------
Мой блог
PM MAIL WWW   Вверх
Anikmar
Дата 22.4.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Daevaorn @  22.4.2007,  21:08 Найти цитируемый пост)
Мы говорим про доступ к элементам. Ты же всячески уходишь от темы в "общую" болтовню 


??? Вот те раз. Посмотрите мои посты. Я как раз и написал в первый раз - общее свое мнение о шабонных классах. 
И то что на моем компиляторе вектор по скорости слегка отстал - это факт, я его просто зафиксировал и написал об этом.

Последние посты - были как раз общие - теоретизировали на тему рессурсов:

Цитата(likehood @  22.4.2007,  19:01 Найти цитируемый пост)
В том-то и фишка, что в С++ многие вещи даются "даром" (ну или почти), чего не скажешь о многих других языках. В этом и заключается его сила. По-сути, целью создания языка С++ было создание высокоуровневого ОО-языка, не уступающего в производительности языку Си. Именно С++ впервые показал, что ООП не обязательно должно быть дорогим удовольствием. 


Цитата(Daevaorn @  22.4.2007,  18:52 Найти цитируемый пост)
В этой фразе явно видно непонимание сути inline. Что такое "дополнительная память"?
Как раз случай с вектором, это прямое доказательство ложности данного высказывания.


Цитата(archimed7592 @  22.4.2007,  18:41 Найти цитируемый пост)
я уже говорил выше, что IS принуждает компилятор ф-ции, определённые внутри класса далеть inline... соответственно ничего никуда не передаётся и нету нигде накладных расходов... 


Mayk, посмотрите заодно размеры получившихся файлов, если использовать массив и вектор. А по поводу практической идентичности листингов - про это я уже сказал, чем вы хотите меня удивить? вектор ведь тоже на СИ++ написан:

Цитата(Anikmar @  22.4.2007,  20:35 Найти цитируемый пост)
Эта inline функция практически это и делает!


А поповоду незначительноя разницы уже было:

Цитата(vinter @  22.4.2007,  21:14 Найти цитируемый пост)
Mayk, у вектора на три машинных инструкции больше  


Цитата(Anikmar @  22.4.2007,  18:44 Найти цитируемый пост)
Конкретные тесты на скорость на самом деле достаточно условны: разница между командами - несколько десятков тактов процессора, и на таких небольших величинах заемтна особо не будет.


Много пены - мало толку.  smile 

PM MAIL ICQ   Вверх
Mayk
Дата 22.4.2007, 21:50 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(Anikmar @  23.4.2007,  01:34 Найти цитируемый пост)

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


Код

#include <vector>

#ifdef VEC
int fill_cont( std::vector<int>& vec )
{
        for( int i = 0; i < vec.size(); ++i ){
                vec[i] = i*i;
        }
}
#else

int fill_cont( int* array, int size )
{
        for( int i = 0; i < size; ++i ){
                array[i] = i*i;
        }
}
#endif


int main()
{
#ifdef VEC
    std::vector<int> cont(5000);
#else
    int* cont = new int[5000];
#endif

    fill_cont( cont
#ifndef VEC
    , 5000
#endif
    );

#ifndef VEC
    delete[] cont;
#endif
}


Цитата

01:41:dvl:~/src/pol$ g++ -DVEC  -O6 a.cpp -o vec
01:41:dvl:~/src/pol$ g++   -O6 a.cpp -o arr
01:41:dvl:~/src/pol$ ls -l arr vec
-rwxr-xr-x  1 dvl dvl 7368 2007-04-23 01:41 arr
-rwxr-xr-x  1 dvl dvl 7739 2007-04-23 01:41 vec


разница сосавляет 371 байт. После strip'а она уменьшается до 296 байтов.
Цитата

-rwxr-xr-x  1 dvl dvl 3540 2007-04-23 01:46 arr
-rwxr-xr-x  1 dvl dvl 3836 2007-04-23 01:46 vec


371 байт и 3 машинные инструкции (не входящие в основной цикл процедуры) являются величинами на несколько порядков меньшими чем заявленные

Цитата(Anikmar @  23.4.2007,  00:35 Найти цитируемый пост)
 экзешники по 10 метров

Цитата(Anikmar @  23.4.2007,  00:35 Найти цитируемый пост)
 килобайты исходного кода STL 

что свидетельствует о преувеличении тормознутости и гигантности stl. 


Это сообщение отредактировал(а) Mayk - 22.4.2007, 21:55


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Anikmar
Дата 22.4.2007, 22:59 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Mayk @  22.4.2007,  21:50 Найти цитируемый пост)
371 байт и 3 машинные инструкции (не входящие в основной цикл процедуры) являются величинами на несколько порядков меньшими чем заявленные


Про какие величины я, простите, упоминал? Про "незначительные"? Или про "несколько десятков тактов (не команд)" процессора? А как я их должен еще охарактеризовать? А про 20% выигрыш в скорости на моем тесте - что имею, то и имею. Можно говорить, что Билдер плохо оптимизирует работу STL, столько же на сколько другой компилятор плохо оптимизирует работу массивов. Это все вода. Поймите главное: STL написана на том же языке! используя те же команды. Это не другой компилятор, не некая сторонняя библиотека - это шаблоны! И компилируются они одновременно с вашим кодом. И если утверждать на 100% - что STL работает быстрее, это то же самое, что говорить - никто не напишет лучше, чем разработчики STL. А ее писали такие же программисты (и может быть пользовались теми же форумами). Именно поэтому STL может быть медленнее стандартных средств, такая же по скорости, но никак не быстрее (если брать уровень программиста одинаковый). Потому, что одни и те же механизмы языка используются. 

А на счет экзешников по 10 метров - это мое обобщенное отношение к современным подходам. Почем линуксоиды не любят форточников? Одна из причин именно - за это. Линукс при том же функционале работает на полном барахле. Там код вылизывают и лишнего не вешают.

На счет килобайтов исходного кода STL.
Да, тут я погорячился. Посмотрел исходники. Их не килобайты. Их Мегабайты. Ну тут уж извиняйте.

Цитата(Mayk @  22.4.2007,  21:50 Найти цитируемый пост)
что свидетельствует о преувеличении тормознутости и гигантности stl. 

Покажите хоть один мой пост, где я назвал STL тормознутой и гигантской? Максимум, что я говорил - это о некоторой потери рессурсов. И это чистая правда, хоть что тут сделай. За исключением разве что результатов теста - там я оговорил четкие цифры, которые выдала конкретно моя машина с конкретно моим компилятором.

Можно, конечно еще поспорить на эту тему - например, посчитать такты процессора для каждой команды и т.п.
Использовать не тепличный бессмысленный тест, а более рабочую программу. все равно результат будет такой-же. Программист всегда будет выбирать: написать быстрее, но готовыми средствами, или изобрести свой велосипед. В некоторых случаях последнее дает ощутимые результаты, а в некоторых нет. Все зависит от задачи и от головы. Можно использовать вектор как в приведенном последнем тесте или "не используя его функционал" - непонятно зачем тогда. А если пользоваться всей мощью вектора - тогда платить придется точно. А так спор близок к теме: кто больше бензина жрет мопед или мерседес. Если их отправить накатом с горки - поверьте одинаково. Но в реальной жизни речь идет не о бензине. Если надо ехать из Питера в Москву - то уж естественно на мерседесе. А если через пробки смотаться в магазин за два квартала - то мопед. ИМХО.

БАЯН. Давайте его заканчивать!  smile 

PM MAIL ICQ   Вверх
console
Дата 23.4.2007, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 1
Всего: 3



Темка, однако, полезная... закрепить бы ее на будущее

Всем отписавшимся респект!  smile 


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
JackYF
Дата 23.4.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(archimed7592 @  22.4.2007,  17:36 Найти цитируемый пост)
кеширование? шутишь? это же не жесткий диск...

Кэширование оперативной памяти в кэш процессора, я имел в виду.

 smile  Тема тут, конечно, успела еще 2 страницы постов нагрести smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 23.4.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



жесть, сколько настрочили... всё не асилил...

Цитата(Anikmar @  22.4.2007,  18:44 Найти цитируемый пост)
Только чтобы получить значение по этому адресу - как минимум происходит вызов функции ( вонкретном случае оператора [])
ничего не происходит... сколько раз уже это повторить?

Цитата(Daevaorn @  22.4.2007,  18:47 Найти цитируемый пост)
что такое "IS"? И как оно "принуждает"?smile
International Standard (Programming languages - C++, ISO-IEC, IS-14882, Second edition, 2003-10-15)
слово принуждает в Ожегове посмотри, плз ;)

Цитата(Anikmar @  22.4.2007,  18:49 Найти цитируемый пост)
В любом учебнике по Си сказано, что inline функция увеличивает скорость, но в качестве накладных расходов - использует  дополнительную память.

Цитата(Anikmar @  22.4.2007,  19:13 Найти цитируемый пост)
Код программы тоже в памяти находится, если вы забыли.
inline функция - это функция, непосредственно встраиваемая в код программы. Этим самым уменьшается время на передачу параметров, но увеличивается размер программы и занимаемая ей ПАМЯТЬ 
"дополнительной" памяти нужно ровным счётом столько же, сколько понадобится, если написать то же самое, только в самом коде... короче говоря, дополнительного там ничего нет!



Цитата(JackYF @  23.4.2007,  16:50 Найти цитируемый пост)
Кэширование оперативной памяти в кэш процессора, я имел в виду.
которое работает только с STL-контейнерами? smile 


Это сообщение отредактировал(а) archimed7592 - 23.4.2007, 19:10


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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