Loading...
marsp avatar marsp 19 Точки

Task 3 Order - int variable derping

Здравейте!

Уха, честта за първия пост за този курс се пада на мен, хаха! Някой по-умен от мен може ли да ме светне, защо аджеба в кода ми int променливата ми, поради някаква непонятна причина за мен, не желае да приеме стойността, която и задавам? Ето за по-ясно:

void insert(const Company* c)
	{
		if (c->getName() != "\n" && c->getName() != "" && c->getName() != " ")
		{
			(*companies).push_back(c);
			for (int i = 0; i < (*companies).size() - 1; i++)
			{
				if ((*companies)[i]->getId() > (*companies)[i + 1]->getId()) //&& (*companies)[i]->getId() != (*companies)[i + 1]->getId())
				{
						auto oldPosVal = (*companies)[i];
						(*companies)[i] = (*companies)[i + 1];
						(*companies)[i + 1] = oldPosVal;
						i = 0; // doesn't get value assigned
				}
				else if ((*companies)[i]->getId() == (*companies)[i + 1]->getId())
				{
					if ((*companies)[i]->getName() > (*companies)[i + 1]->getName())
					{
						auto oldPosVal = (*companies)[i];
						(*companies)[i] = (*companies)[i + 1];
						(*companies)[i + 1] = oldPosVal;
						i = 0; // doesn't get value assigned
					}
				}
			}
		}
	}

П.С. Надявам се няма да е проблем, че съм пуснал малко от кода на тази задача.
Поздрави!

0
C++ Advanced
kolioi avatar kolioi 641 Точки

Най-вероятно не влизаш в if-а. Сложи breakpoint на двата реда където нулираш i и пусни дебъгера да видиш какво става.

0
marsp avatar marsp 19 Точки

Всъщност влиза, за това съм и малко объркан. Минава и през самата променлива, но поради някаква причина не приема стойността, която и се задава. :/

0
08/09/2018 16:48:29
marsp avatar marsp 19 Точки

Update: След кратка игра с дебъгъра, установих, че "i = -1" ми занули успешно. Нямам обаче никаква представа защо. Ако някой може да ми светне лампичката, ще съм му задължен, хаха!

Поздрави!

0
marsp avatar marsp 19 Точки

Update v2: Явно просто съм мега зле... тотално забравих, че все пак съм в for цикъл, който накрая инкрементира...

Joke's on me. :) Надявам се поне, за четящите да бъде забавно! :D

Поздрави!

0
kolioi avatar kolioi 641 Точки

Стават грешки. Един миг невнимание и после цял ден дебъгване wink

Доколкото разбирам от кода, трябва ти сортиран списък от обекти от клас/структура Company. Можеш просто да ги събереш в един vector и след това да го сортираш. Или да използваш set. Тъй като не знам какво е условието на задачата, не мога да кажа кой начин е по-подходящ. За сортирането може да погледнеш примера тук.

0
marsp avatar marsp 19 Точки

Трябваше да е задължително vector по условие. Мислех първоначално да си поиграя да сложа кондиция с std::sort, но понеже трябваше кондицията да е един от членовете на класа и това ми се стори малко играчка, понеже не съм го правил така, реших да си разпиша прост сортиращ алгоритъм. Но пък ще разгледам и sort варианта как би се реализирал. :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.