|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
Собеседование std::vector14.08.2015, 17:50. Показов 4289. Ответов 29
Метки нет (Все метки)
1)
Вечереет. Вы крутой старший разработчик, сидите и делаете вид, что кодите мегапроект. У вас через полчаса собеседование. Вы предвкушаете базар ни о чем и обо всем, а также уже давно приготовили кучу пыточных вопросов, которые будут скрашивать ваше совместное времяпрепровождение. Внезапно вы чуете приближающегося техдира <> (подставить любое ненавистное имя) за спиной, степенно жмете Alt+tab, переключаясь с крайне интересных приложений на куда менее интересные. Начинается диалог. - Здаров! У тебя через полчаса собеседование, помнишь? - Канешн помню! - Так вот, слушай сюда внимательно. Спрашиваешь только про std::vector и все, что к нему относится? Понял? - ...? - Ну так понял? - Да понял я, понял. Техдир уходит удовлетворенным. На вас же нападает такое сильное вдохновение к построению многоэтажных зубодробительных языковых конструкций, что вы не можете удерживать это внутри себя: ### ##### ##### ### ###### ##############! Ну что, народ? Что спрашивать-то с вами будем? Соискатель вроде не совсем дурак, как проверим его только с помощью std::vector? 2) Если б это был я, то первые два вопроса, которые пришли б в голову: при перераспределении памяти какой новый объем мы выделяем и почему именно такой? напишите реализацию push_back (кодом, можно схематично) Может кстати кто-нибудь хочет на них ответить?
1
|
|
| 14.08.2015, 17:50 | |
|
Ответы с готовыми решениями:
29
Как передать целочисленную матрицу типа std::vector<std::vector<int> > в функцию? Как изменять размер std::vector<std::vector>? |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 15.08.2015, 23:25 | |||||||
|
пуш-бак - это вставка копии. в чем проблема?
0
|
|||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 15.08.2015, 23:29 | |
|
hoggy, проблема в возможной реализации в лоб. Понятно, что сейчас это у всех работает ожидаемым образом.
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||||||
| 15.08.2015, 23:56 [ТС] | ||||||||
Можешь тут почитать подробнее https://www.reddit.com/r/cpp/c... r_pitfall/ Решается проблема например одним из следующих способов. 1) Вначале вставляем в новую память новый элемент, а потом уже производим остальные операции. 2) Запоминаем текущий индекс вставляемого элемента, потом достаем этот элемент не по ссылке, а по индексу.
5
|
||||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 16.08.2015, 06:38 | ||
|
Добавлено через 25 минут Можно спросить как поведет себя вектор в зависимости от того какая функция-член хранимого типа возбудила исключение. Добавлено через 12 минут Попросить рассказать о специализации std::vector<bool>.
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 16.08.2015, 11:51 | ||
|
По сути, эффект можно считать эквивалентным освобождению исходной памяти (с точки зрения изменения состояния объекта), о чём я и говорил.
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||||||||||||
| 07.05.2017, 14:17 | ||||||||||||||||
|
P.S. Да, я некрофил
![]()
first переходит в состояние valid, but unspecified
После 2 строки с объектом можно: - декструктор - присвоение - методы инкапсулируемые присвоение нового состояния: setState(), clear(), .... - константные методы без precondition внутри: get(), empty(), size()
empty(), size() имеет определённое поведение, но что именно вернётся в 3 строке, зависит от того, что сделали с объектом в 2 строке[/B]. Другими словами, объект first не контролирует своё состояния, после того как разрешил выпотрошить себя в 2 строке. Отсюда, я не понимаю, ct0r, почему вы считаете, что если спросить у такого объекта empty он тут же станет валидным для pop_back ?
учитывая мой текст выше. Как по мне, с таким объектом практически ничего не можно сделать .... Вопросы: 1) Верный ли для кода выше комментарий //Value returned is undefined. May be 0, may not ?2) Верно ли я дошёл к тому, что на вопрос ТС правильный ответ был бы "практически ничего не можно делать" кроме .... (тут была шутка про пессимиста и на половину пустом стакане) ? 3) А если std::move() перекидует объект в метод, который ничего не делает с объектом-from, объект всё равно перейдет в "такое" состояние ?
1
|
||||||||||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||||
| 07.05.2017, 14:59 [ТС] | |||||
![]()
1
|
|||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||||
| 07.05.2017, 15:08 | |||||
|
основываясь, что UB по стандарту, но его не будет потому, что мы же убедились, что он не пустой. Я к тому, что если написано будет UB - то даже, если нам поведение поклялось, что всё будет хорошо - вызывать такие методы может привести к взрыву компьютера и всё будет закономерно. то это уже не "всё что угодно". Но думаю тут вопрос вкусов
0
|
|||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 07.05.2017, 15:15 [ТС] | ||||
Выстрел в ногу тут только от незнания основ.
0
|
||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 07.05.2017, 15:19 | |
|
ct0r, понятно чел
0
|
|
| 07.05.2017, 15:19 | |
|
Вывести значения std::vector<std::vector<int*> > Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator>
Реализация класса MyString. Стандартная библиотека, std::string, std::vector Передача функции указатель на элемент std::vector<std::string> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|