Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
#1

Есть некоторые строчки кода, которые я не понимаю - C++

15.11.2012, 00:44. Просмотров 298. Ответов 3
Метки нет (Все метки)

Добрый день. У меня есть код программ но есть некоторые строчки кода которые я не понимаю. Помогите разобраться.

Как бы что тут делается?
template<typename T> void swap(T& n1, T& n2)
{ T _tn = n1; n1 = n2; n2 = _tn; }
И вот тут то что выделено..

for (int q = 0; q < N; q++)
{
int min = q;
for (int s = q+1; s < N; s++)
if (A[s] < A[min]) min = s;

swap<double>(A[q],A[min]);
}
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2012, 00:44     Есть некоторые строчки кода, которые я не понимаю
Посмотрите здесь:

Задача по наследованию. Не понимаю некоторые моменты в формулировке задания C++
Не понятны некоторые строчки в проге( C++
C++ Объясните, для чего нужны некоторые строчки в коде(using namespace, new, int main)
C++ не понимаю принцип работы кода
Объясните две строчки кода C++
Перегрузка, адресация, объясните строчки кода C++
C++ Не понимаю часть кода
C++ Прокомментировать 2 строчки кода
Расшифруйте 3 строчки кода C++
C++ Прокомментируйте оставшиеся строчки, не понимаю как работает "Решето Эратосфена"
C++ Перевести 2 строчки кода с printf на cout пожалуйста!
C++ Описать строчки кода, что они делают!

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12508 / 7070 / 794
Регистрация: 27.09.2012
Сообщений: 17,457
Записей в блоге: 2
Завершенные тесты: 1
15.11.2012, 00:47     Есть некоторые строчки кода, которые я не понимаю #2
Цитата Сообщение от Flashik66 Посмотреть сообщение
Как бы что тут делается?
n1 становится равным n2, а n2 становится равным n1.
А вообще почитайте про шаблоны.

Цитата Сообщение от Flashik66 Посмотреть сообщение
И вот тут то что выделено..
дорога ведет к изучению шаблонов.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
15.11.2012, 00:51     Есть некоторые строчки кода, которые я не понимаю #3
Ты скорее ещё не знаешь шаблоны и stl. Не удивительно, в большинстве курсов С++ их оставляют напоследок или даже не упоминают бывает.
Это шаблон функции обмена двух переменных. Объявление template<typename T>, значит, что это шаблон, в который вместо Т можно подставить любое имя типа. Вызывая swap<double>(A[q],A[min]); ты просишь компилятор создать функцию, согласно шаблону подставив вместо Т double,
И получается, что этот код аналогичен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void swap(double& n1, double& n2)
{ 
  double _tn = n1;
  n1 = n2;
  n2 = _tn; 
}
///...
for (int q = 0; q < N; q++)
{
  int min = q;
  for (int s = q+1; s < N; s++)
    if (A[s] < A[min]) min = s;
  swap(A[q],A[min]);
}
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
15.11.2012, 22:50  [ТС]     Есть некоторые строчки кода, которые я не понимаю #4
Спасибо большое!
Yandex
Объявления
15.11.2012, 22:50     Есть некоторые строчки кода, которые я не понимаю
Ответ Создать тему
Опции темы

Текущее время: 06:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru