LINUX.ORG.RU

C++ удалить по индексу

 , ,


0

1

Есть 3 контейнера, в одном из них удаляются элементы, нужно, что бы исходя из удаленных элементов одного контейнера, в остальных тоже удалялись элементы под этими индексами. Как такое сделать?



Последнее исправление: ioexception (всего исправлений: 2)
Ответ на: комментарий от itn

До сих пор путаешь Си и Си++?

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

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

Это как? Примером можно (я не старпер а стартапер, так что словами не понимаю).

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

Допустим три контейнера:

std::list<std::string> strings1; //из него удаляются элементы

//а в этих нужно тоже удалить в соотвестствии с первым
std::list<std::string> strings2;
std::list<std::string> strings3;

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

Я бы не почтил этот тред своей гениальной личностью если бы ты меня не кастанул.

Лучше бы по делу что сказал...

Я не понимаю чем тебе уже можно помочь. Хотя могу дать совет. В армию думаю тебе пора собираться. Весенний призыв в самом разгаре!

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

Я не понимаю чем тебе уже можно помочь.

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

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

Ну допустим я тебе всё распишу и напишу а завтра ты опять тут тупняк писать будешь. Так зачем мне тебе помогать?

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

Так используй итератор, в чем проблема?

WRG ★★★★
()

Ну удаляй сам, в чем проблема? Нашел индекс, берешь его, и проходишь по остальным спискам.

m раз по O(n), получишь O(nm)

sanchopanca
()
Ответ на: комментарий от ioexception

В следующий раз попробуй хоть немного головой подумать?

#include <list>
#include <string>

std::list<std::string> strings1;
std::list<std::string> strings2;
std::list<std::string> strings3;

void del(unsigned int pos)
{
	std::list<std::string>::iterator it = strings1.begin();
	advance(it, pos);
	strings1.erase(it);
	
	it = strings2.begin();
	advance(it, pos);
	strings2.erase(it);

	it = strings3.begin();
	advance(it, pos);
	strings3.erase(it);
}

int main()
{
	strings1.push_back("ololo");
	strings1.push_back("azaza");
	strings1.push_back("lalka");

	strings2.push_back("ololo");
	strings2.push_back("azaza");
	strings2.push_back("lalka");

	strings3.push_back("ololo");
	strings3.push_back("azaza");
	strings3.push_back("lalka");

	del(1);

	return 0;
}

З.Ы. код не компилил.

WRG ★★★★
()

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

А так, только обходить итератором. Можно попробовать другой тип контейнера, поддерживающих удаление из произвольного места.

Weres ★★★
()

Ув.модераторы, а можно ли пристрелить этого дятла? А то он уже изрядно задолбал...

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

У листов есть интератор, но мне нужно удалить элементы по индексу а удаления по индексу в них нет.

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

andreyu ★★★★★
()

Странная картина.
Если ты сталкиваешься с чем то, что сложнее int i=0;, то бежишь на лор и задаешь свои глупые вопросы.
Ясно видно, что си тебе не по зубам.
Мб лучше выбрать пхп?

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

Мб лучше выбрать пхп?

Не надо его в пхп. Он там начнет говнокод писать и в прод заливать. А на C/C++ он ничего никогда написать не сможет, так и будет по ЛОРу ходить, помогалки клянчить.

g0t0
()
Ответ на: комментарий от Cactus64k

Так ведь он будет спрашивать, почему не unsigned i=0;. Кстати, тема для следующей темы, очень у многих с этим проблема.

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

@ioexception, ты как вообще сдавать то свой курсач будешь? Ты серьезно думаешь, что препод не поймет, что ты идиот?

Нет, я серьезно - ты логику включи, парниша, «а в этих нужно тоже удалить в соотвестствии с первым», ты серьезно не понимаешь, как это сделать, или троллишь просто? Мать моя женщина, тут даже с++ ни при чем - простейшие азы алгоритмизации и логики!

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