powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / что не так с вектором делаю?
25 сообщений из 56, страница 2 из 3
что не так с вектором делаю?
    #39848035
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TmaytonДля хеш-таблички это неверно
Не совсем: удали элемент, куда смотрит итератор и следующий будет неизвестен.
Я комментировал добавление нового элемента.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848044
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тоже спрошу
segfault в данном случае это fragmentation of the free store?
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848152
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЭх, был бы ты подобрее, я бы тоже подобрее ответил. В конце концов у тебя проблема и ты не понимаешь как ее решать. С++ это не высокоуровневый ЯП, тут есть куча условностей, которые надо соблюдать, а откуда они взялись надо просто знать.
опять ля-ля

"я бы, да кабы, если бы" - что ты обиженную девочку строишь
люди ходят на форумы, чтобы повышать квалификацию, или хотя бы дать пищу мозгу
когда они видят интересную им проблему, они разминают об неё мозги и получают с этого профит:
во1, для себя - обновлённый опыт
во2, помогли кому-то, а это + в карму и к ЧСВ
а НЕинтересные проблемы они игнорируют

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


PS Рули граблями, одень каску чтоб не сильно било, искренние соболезнования твоему работодателю.
я сам работодатель.
Dima Tполудухнельзя разобраться в подобной ошибке просто узнав, что такое динамическая память и чем указатель от ссылки отличается
Это говорит о том что у тебя каша в голове.

Объясняю на примере: 8 орехов лежат в ячейках 260-267, в процессе пересчета добавили орех и т.к. ячейка 268 занята, то все орехи переложили в ячейки 100500-100508, дальше понятно?
полудухну если бы в этом была проблема, он бы сразу упал, не?
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848159
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabя тоже спрошу
segfault в данном случае это fragmentation of the free store?
нет, там что-то другое, уже не помню (
что-то про 4
одну ошибку я разобрал и пофиксил - нельзя вставлять значение в ячейку вектора, которой не существует - тоже отваливается без описания ошибки
но там чё-то другое было
оно отваливалось при достижении определённого числа
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848362
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухBarloneпропущено...
Ну нельзя же увеличить ранее выделенный блок памяти. А вектор должен размещаться в непрерывном куске памяти. Так что выделяется новый блок большего размера, в него копируются значения из старого, и старый блок освобождается. А итератор продолжает указывать на освобожденный блок.
ну если бы в этом была проблема, он бы сразу упал, не?
Не. С чего бы ему сразу падать? Память то доступна. А что в ней уже не вектор - это не сразу скажется. И вообще от реализации зависит - в какой именно код for по контейнеру компилируется...
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848365
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух, может тебе всё таки подойдет Queue?
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848510
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухну если бы в этом была проблема, он бы сразу упал, не?
Не. Не хочешь вникать в причины - не спрашивай почему упал, запомни что так нельзя делать и больше не делай.
А то что упал - это счастье, иначе бы пошел мусор на вход твоей проги и ты бы устал искать откуда мистика идет.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848523
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneПамять то доступна. А что в ней уже не вектор - это не сразу скажется.
хм, фигово (
вроде в цикле находимся, да и память есть, а тут UB...

maytonполудух, может тебе всё таки подойдет Queue?
не, надо доступ по ключу
да я уже прикрутил тот второй способ
я сразу понял, что нельзя делать .push_back() тому же вектору, который итерируешь
а для понятия деталей походу надо написать пару сотен К строк
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848526
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух, из твоей хотелки можно сделать предположение что у тебя - конкурентный
доступ к структуре данных из 2х независимых потоков. Один хочет видеть итератор. Второй хочет добавлять
элемент. Есть миллион и маленькая тележка способов как решить твою задачу. Но я убежден
что правильный ее вариант решения на самом деле более простой. И он связан с пересмотром
алгоритма или подхода к твоей задаче. И ломать об колено итератор не нужно будет.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848618
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухне, надо доступ по ключу

Используй std::deque. Ещё и работать будет быстрее.
std::vector - дебильный контэйнер для Basic-писателей.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39848748
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, ну я так и сделал
всем спасибо
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850397
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух,

Подскажи, как в векторе менять значения в функции
foor(auto i : vertices) {
i.x = 12345
.....
наа выходе из функции все теряеттсся

f(std::vector<glm::vec3> & vertices)
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850404
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpfoor(auto i : vertices) {
i.x = 12345
Тут ты меняешь во временной переменной, а не в векторе. Используй ссылку
Код: plaintext
1.
foor(auto& i : vertices) 


https://stackoverflow.com/questions/29859796/c-auto-vs-auto
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850406
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Блин, везде ставить))
Ты гений. Заработало)
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850444
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcполудухне, надо доступ по ключу

Используй std::deque. Ещё и работать будет быстрее.
std::vector - дебильный контэйнер для Basic-писателей.А какие преимущества у deque в ключе рассматриваемой темы?
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850489
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,
Никаких)
Если надо по ключу, то std::map вестимо.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850539
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpAmKad,
Никаких)
Если надо по ключу, то std::map вестимо.
но он дороже вектора
и рассчитан на string в кач-ве ключей
а когда цифровые индексы, то достаточно массива, который в C++ заменён на вектор (который дешевле всего сейчас походу)
хотя я видел кто-то массивы юзает ещё...
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850541
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, зачем пишут auto& var или auto* var ?
ведь ссылка относится к переменной
и когда позже будут вызывать var (без типа), то так: *var
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850552
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухкстати, зачем пишут auto& var или auto* var ?
ведь ссылка относится к переменной
и когда позже будут вызывать var (без типа), то так: *var
Не, это ссылка и указатель. Разные вещи. Ты так и не почитал пару килобайт, которые у тебя есть по этой теме.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850562
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, с утра прочитай ещё раз, что я спросил
внимательно
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850569
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, вот man 2 mkdir , тут нормально:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SYNOPSIS
       #include <sys/stat.h>
       #include <sys/types.h>

       int mkdir(const char  *pathname , mode_t mode);

       #include <fcntl.h>           /* Definition of AT_* constants */
       #include <sys/stat.h>

       int mkdirat(int dirfd, const char  *pathname , mode_t mode);
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850600
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух,
Я тоже никак не могу понять. Везде по разному.
Вроде логично знак писаить правее. К переменной.
Записывай в FAQ))
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850601
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухно он дороже векторатермин дороже надо расписать. Очень зависит от контекста. А контекст от кода рядом.
У вектора же поиск по key дольше.
А это основное назначение map.
..
Про стринг, дак это хорошо. Например, справочник аэропортов. Там ключик это 3 буквы строка.
То есть штатное использование map.
...
Массивы нехай юзают. Только их все меньше и меньше.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850635
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудуххотя я видел кто-то массивы юзает ещё...
PetroNotC SharpМассивы нехай юзают. Только их все меньше и меньше.
Код: plaintext
1.
2.
3.
4.
//вот 10 лет назад тут был массив (указатель)
glUniform3fv (uniVec, 1, указательМассив);
// теперь тут обертка и ЯП более высокого уровня)
glUniform3fv (uniVec, 1, glm :: value_ptr (v));


https://glm.g-truc.net/0.9.2/api/a00001.html
Так что их, как и в Java будет всё меньше и меньше.
...
Рейтинг: 0 / 0
что не так с вектором делаю?
    #39850689
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухкстати, зачем пишут auto& var или auto* var ?
ведь ссылка относится к переменной
Это просто стиль кодирования такой.
Бывают стили с обоими вариантами.
Но я например предпочитаю именно этот вариант, когда тип и все его модификаторы визуально сгруппированы, а переменная стоит отдельно. В этом стиле еще обычно есть требование объявлять только одну переменную в каждой строке, чтобы не путаться когда "int* a, b" - это объявление указателя и значения, хотя выглядит как два указателя.
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / что не так с вектором делаю?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]