LINUX.ORG.RU
ФорумTalks

Как хорошо на ЛОРе знают C++


0

3

Я понимаю, что C++ не нужен, но тем не менее. Случайно наткнулся на забавное тестирование: http://www.cprogramming.com/cgi-bin/quiz.cgi . 50 вопросов по C++ и не только. У кого какие результаты? У самого 76% По своей невнимательности и из-за склероза завалил все вопросы о том, какие функции каким хидерам стандартной библиотеки соответствуют.

Да, я знаю, что тесты ничего не показывают. Но всё равно забавно.

★★★

Последнее исправление: Sadler (всего исправлений: 1)
Ответ на: комментарий от EtherealPhantom

>qsort ? linear ? buble # корявый англицкий! думал они спрашивают кого бы из трех я предпочел подождать,

Они и спрашивают, какой самый быстрый. Только линейный _поиск_ всегда быстрее сортировки. Забавная ловушка, хотя непонятно что можно таким вопросом узнать о тестируемом.

в чем смысл иметь в языке и auto и register одновременно - непонятно

register - для низкоуровневых оптимизаций.

#44 abs(-16.5) # fabs() же, чорт! проглядел... всё равно бы не скомпилилось без ругани

Мой gcc не согласен с их вариантом ответа.

а срыв стека за выход считается?

Вот я тоже не понял. Они, видимо, считают. Лично я - нет.

legolegs ★★★★★
()
What operator is used to access a struct through a pointer?
->
>>
*

Ответ: ->.

Да они там обдолбанные. -> используется для доступа к _полю_ структуры через указатель. Кто нибудь видит слово field или member в вопросе?

geekless ★★
()
Ответ на: комментарий от x4DA
┌[legolegs@battlehummer ~] :)
└> cat abs.cpp
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
  cout << abs(-16.5) << endl;
}
┌[legolegs@battlehummer ~] :)
└> g++ abs.cpp && ./a.out
16.5
┌[legolegs@battlehummer ~] :)
legolegs ★★★★★
()
Ответ на: комментарий от x4DA

А, про 16 вопрос, откуда данные быстрее доставать? Так вот с верхушки стека снять элемент быстрее, чем из хэш-таблицы. Ну да, не одно и тоже, ну так весь опросник сравнивает тёплое с мягким.

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

> Так вот с верхушки стека снять элемент быстрее, чем из хэш-таблицы.

Плюсую. Тоже был удивлён, почему это хэш-таблица быстрее.

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

Да ну? Делаем симлинки на один и тот же «эксешник» и, в зависимости от argv[0] выполняем ту или иную работу. Вот только не говорите, что сим/хардлинков в мастдае нет!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от legolegs

Только линейный _поиск_ всегда быстрее сортировки.

Это лишь в случае, если вам однократно что-то достать надо. А с заделом на будущее, быстрее сначала отсортировать и проиндексировать.

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

>Плюсую. Тоже был удивлён, почему это хэш-таблица быстрее.

Какбэ в хеше выборка в среднем выполняется за O(1).

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

>Вот я тоже не понял. Они, видимо, считают. Лично я - нет.
Судя по их ответу, это нерелевантно, потому что «Зависит от компилятора: некоторые компиляторы превратят такую функцию в цикл, и она не прекратит работу» (и стека не сорвет). Я лично считаю, что срыв стека - тоже выход. Как в «балладе о программисте Меле».

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

>Вот только не говорите, что сим/хардлинков в мастдае нет!

Я скажу, что реально их не используют. Ну сложилось так.

legolegs ★★★★★
()

У меня 70% (35 из 50).

Собираюсь идти C работать(. Что делать?

DarkAmateur ★★★★
()

86%, удивительно, с моим-то два-по-пять.

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

>Какбэ в хеше выборка в среднем выполняется за O(1).

В хеше выборка за O(k), где k - длина ключа. А в стеке ключей нет, там чистейший O(1).

legolegs ★★★★★
()

You made it all the way through! Your score is 80%. You got 40 answers correct out of a possible 50 questions. Thanks for taking our test!

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

>В хеше выборка за O(k), где k - длина ключа. А в стеке ключей нет, там чистейший O(1).

В хеше выборка произвольного элемента это применение хеш-функции и обращение по индексу в массиве, а в стеке нужно перебрать N элементов по одному, не?

AptGet ★★★
()

Я понимаю, что C++ не нужен, но тем не менее.

Я понимаю, что ты не понимаешь, но почему так пишешь?

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

Он так пишет чтобы плюсосрач не начался совсем уж сразу.

// К.О.

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

>Чочо? Вы меня пугаете.

Допустим, нужно удалить элемент со значением Х из стека и из хеша. В стеке придется вынимать N элементов по одному, сравнивать значение каждого элемента с Х, потом N-1 элементов положить назад в стек. В хеше нужно вычислить хешфункцию, выбрать элемент из массива и удалить его.

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

> А, про 16 вопрос, откуда данные быстрее доставать? Так вот с верхушки стека снять элемент быстрее, чем из хэш-таблицы. Ну да, не одно и тоже, ну так весь опросник сравнивает тёплое с мягким.

А кто сказал, что нужен элемент с верхушки? Нас интересует среднее время выбора элемента.

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

> В вопросе слова «поиск» не было.

Так получается что выбрать элемент из стека, дерева и хеш-таблицы можно без поиска?

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

> Так получается что выбрать элемент из стека, дерева и хеш-таблицы можно без поиска?

Да. Можно выбрать первый попавшийся элемент, например. Или ещё как-то.

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

Под выбором элемента подразумевается не возврат того, что ближе всего лежит. А выбор по заданному ключу.

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

Да, меня тоже смутило =)Меня устриавет вариант «What the heck», хотя правильный не он =)

А вы представьте, что C - это переменная типа int, тогда все станет логично. Тут я ответил правильно, но на несколько вопросов умудрился ответить не правильно.

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

> Под выбором элемента подразумевается не возврат того, что ближе всего лежит. А выбор по заданному ключу.

Я отвечаю на вопрос, а не на то, что думал автор, когда задавал вопрос.

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

> А вы представьте, что C - это переменная типа int, тогда все станет логично.

А вы представьте, что C++ это постинкремент, а не преинкремент. И тогда всё станет нелогично.

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

> Но вообще это не тест, а говно. Я так и не понял, какие знания он проверяет.

С помощью него определяется погода на следующую неделю в экваториальной зоне Марса.

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

> А, про 16 вопрос, откуда данные быстрее доставать? Так вот с верхушки стека снять элемент быстрее, чем из хэш-таблицы.

Тут я ответил стек. Но оказалось, что я не прав. Бредовый тест.

andreyu ★★★★★
()

66, но я на С++ всего третий день пишу :)

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

> > А вы представьте, что C - это переменная типа int, тогда все станет логично.

А вы представьте, что C++ это постинкремент, а не преинкремент. И тогда всё станет нелогично.


В данном случае логично.

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

> В данном случае логично.

В данном случае не определено, ибо неизвестен контекст C и C++.

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

Читай стандарт. Как операнды одного оператора C и C++ НЕ могут фигурировать. А значит, нам плевать что инкремент пост а не пре.

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

> В данном случае не определено, ибо неизвестен контекст C и C++.

Да, тест IQ ты бы завалил -_-

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

> Я отвечаю на вопрос, а не на то, что думал автор, когда задавал вопрос.

Любой, кто знает теорию алгоритмов хоть как-нибудь, подумает то же. Ты вот не знаешь и расстраиваешься зря.

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

> Приятно слышать мнение специалиста.

Обращайтесь ещё.

Sadler ★★★
() автор топика
Ответ на: комментарий от Sadler
dan@dan-desktop:~$ cat main.c
int main()
{
	int c = 0;
	return c==c++;
}
dan@dan-desktop:~$ gcc -ansi -Wall -pedantic  main.c
main.c: In function ‘main’:
main.c:4:13: warning: operation on ‘c’ may be undefined [-Wsequence-point]

Лови, дружок. И читай стандарт.

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