Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Опечатки #45

Open
xamgore opened this issue Dec 19, 2014 · 20 comments
Open

Опечатки #45

xamgore opened this issue Dec 19, 2014 · 20 comments

Comments

@xamgore
Copy link
Member

xamgore commented Dec 19, 2014

Лямбда — functioanal.

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

Лекция 5, Указатели и константность:

int i = 5;
const int *cp = &i; // Указатель на константу
cout << *cp++;              // Ошибка компиляции

Ошибки нет. Появится она только если написать (*cp)++.

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

Лекция 6. Ссылки на константы:

const int n = 10;
int& cn = n; // Такое компилятор запретит
int& cn = const_cast<int>(n);
const int& ccn = n; 

Ошибка в третьей строке, должен быть каст к <int&>.

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

Лекция 14. Подвох в конструкторе с одним параметром (конструкторе преобразования):

myvector<int> v(10), v1(10); // 10 нулей
v1 = v + 1;

На деле v1 = v + 1; эквивалентно v1 = v + myvector<int>(10);

Вместо 1, наверное, должна быть 10.

@ghost
Copy link

ghost commented Jan 23, 2015

Ну, судя по всему абзатцу наоборот - вместо 10 должна бысть единица т.е

                 На деле `v1 = v + 1;` эквивалентно `v1 = v + myvector<int>(1)` 

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

То есть if(!ifs) ~ if(ifs.eof()), однако первый способ является более понятным.

Тут однозначно опечатка.

@ulysses4ever
Copy link
Member

Думаю, неэквивалентно.

@ghost
Copy link

ghost commented Jan 23, 2015

Что интересно, такая же записть присутствует в прошлогоднем конспекте.

@ulysses4ever
Copy link
Member

Ну, видимо, лектор действительно в это верит, что ж поделать. На самом
деле, если не путаю: f.eof() => !f, но не наоборот. Вопрос тонкий и при
беглом знакомстве, которое у вас было с потоками, можно пренебречь,
наверное.

@ghost
Copy link

ghost commented Jan 23, 2015

А вот здесь нет подводных камней? Пока будет, что считывать будет возвращаться адрес, в противном случае ноль, правильно?

ofstream to1("c.txt", ios_base::app);
while(ifs)
    getline(ifs, s);

Т.е. просто удаляем строку:
То есть if(!ifs) ~ if(ifs.eof()), однако первый способ является более понятным.

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

Лекция 21. Получился кривой copy:

OutIt copy(InIt b, InIt e, OutIt b1)
{
    while(b != e) {
        *b1 != *b;
        ++b;
        ++b1;
    }
    return b1;
}

@ghost
Copy link

ghost commented Jan 23, 2015

😸
Давно я так не смеялся.

Интересно, это неправильно написано или неправильно переписанно.

@ghost
Copy link

ghost commented Jan 23, 2015

Больше похоже на опечатку 1 и ! рядом.

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

Мне очень не нравятся оценки эффективности, которые admin привёл в лекциях.
Тот факт, что они построены на бинарных деревьях поиска — позволяет сказать только, что в среднем операции выполняются за O(log n), но в худшем случае за O(n).

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

@ghost
Copy link

ghost commented Jan 23, 2015

Ты про set и map?

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

И опять-таки, если и map, и set основаны на БДП, то и для map требование: наличие <, либо компаратора.

@ghost
Copy link

ghost commented Jan 23, 2015

наличие <, либо компаратора - это уже требование не к объекту, а к ключу. Так ведь получается?!

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

@razykov, очевидно, да.

@ghost
Copy link

ghost commented Jan 23, 2015

Ну, по-видимому об этом нам не сказали потому, что мы еще не скоро должы найти себе такую задачу, в которой ключом будет класс отличный от string или встроенных типов данных.

@ghost
Copy link

ghost commented Jan 23, 2015

К тому же, мне кажется, если в качестве ключа использовать достаточно большие объекты, то map начнет немного пофигивать.

Вот кстати вопрос, а как зависит скорость работы map от размера ключа? (Если ключом является string)

@xamgore
Copy link
Member Author

xamgore commented Jan 23, 2015

Ещё одна бажина:

img

@razykov, какой-то странный вопрос. Если там будут очень длинные строки и первые 100000 символов одинаковыми, то да, долго.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants