Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Обяснение на кода

Featured Replies

Може ли да ми обясните подробно какво прави всяко едно нещо в кода.

 

#include <iostream>
#include <list>
using namespace std;

void show_list(list<int> L)
{ list<int>::iterator p;
  for(p=L.begin(); p!=L.end(); p++)
    cout << *p << " ";
  cout << endl;
}

int a[5] = {32,45,12,24,29};
list<int> L(a+1,a+5);

int main()
{
  show_list(L);

  L.push_front(50);
  L.push_front(40);
  L.push_back(56);
  L.push_front(34);
  L.push_back(45);
  L.push_front(30);
  L.push_front(20);

  show_list(L);

  list<int>::iterator p = L.begin();
  for(int i=1; i<=4; i++) p++;

  list<int>::iterator q = L.end();
  for(int i=1; i<=3; i++) q--;

  cout << *p << " " << *q << endl;

  L.erase(p,q);
  show_list(L);


  return 0;
}
 

Има в Google. Заляхте ни с еднотипни въпроси. Поне можеше да си направиш труда да прочетеш другата тема, където съм обяснил някое друго нещо..

преди 1 час, Petur Dimitrov написа:

Може ли да ми обясните подробно какво прави всяко едно нещо в кода.

 

 

 #include <iostream>                // Хедър за вход и изход
#include <list>                     // Хедър за двойно свързан списък
using namespace std;                // Неймспейс на STL

void show_list(list<int> L)         // функция извеждаща на конзолата всички елементи на списъка
{ list<int>::iterator p;            // Итераторът е като пойнтър, но не е пойнтър, но и това е вярно и не е вярно   
  for(p=L.begin(); p!=L.end(); p++) // L.begin() и L.end() са итератори съответно към началото и края на списъка
    cout << *p << " ";              // Извеждане със цикъл на елементите на списъка
  cout << endl;
}

int a[5] = {32,45,12,24,29};       // Деклариране в глобалната памет на масив от цели числа и инициализиране с пет стойности  
list<int> L(a+1,a+5);              // Деклариране в глобалната памет на двойно свързан списък и инициализиране с последните
                                   // четири елемента на масива а          
int main()                         // входна точка на програмата
{
  show_list(L);                    // извеждане на двойно свързания списък на конзолата

  L.push_front(50);               // добавяне към предния и задния край на списъка различни елементи
  L.push_front(40);
  L.push_back(56);
  L.push_front(34);
  L.push_back(45);
  L.push_front(30);
  L.push_front(20);

  show_list(L);                       // извеждане на така допълнения списък на конзолата

  list<int>::iterator p = L.begin(); // чрез указателна чритметика се увеличава итератора р да сочи към петия елемент от началото
  for(int i=1; i<=4; i++) p++;

  list<int>::iterator q = L.end();  // чрез указателна аритметика се увеличава итератора q да сочи към четвъртия елемент от края
  for(int i=1; i<=3; i++) q--;

  cout << *p << " " << *q << endl; // извеждане на двата елемента към които сочат итераторите p и q

  L.erase(p,q);  // изтриване на елементите между тези два итератора
  show_list(L);  // извеждане на оставащата част от списъка на конзолата


  return 0;     // връщане към операционната система със стойност 0 в акумулатора
}

 

Редактирано от Реджеп Иведик (преглед на промените)

Скиена пише, че судоку се прави със свързан списък, опашка, заради бак тракинга. Обаче трябвало да се обмисли, какво може да помогне за да се намалят вариантите.

Като почнах да пиша код и тръгнах да обмислям, стигнах до извода, че вариантите могат да се сведат до един, и съответно свързания списък е излишен. Сега си имам судоку солвър и судоку генератор без бак тракинг и без свързан списък.

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.