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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
#1

Объясните фрагмент кода, как работает,можно ли заменить??? - C++

05.06.2011, 23:52. Просмотров 1249. Ответов 13
Метки нет (Все метки)

C++
1
2
sort(X.begin(),X.end());
 sort(Y.begin(),Y.end());
Что это и как это работает,можно ли заменить???
и вот ещё вот это
C++
1
2
    vector<float> X(4);
    vector<float> Y(4);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 23:52     Объясните фрагмент кода, как работает,можно ли заменить???
Посмотрите здесь:

C++ Объяснить фрагмент кода
фрагмент кода C++
Объясните, что делает фрагмент кода C++
C++ Обьяснить фрагмент кода
Можно ли переписать фрагмент кода C++
Объясните фрагмент кода! C++
Объясните, пожалуйста, фрагмент кода C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
06.06.2011, 00:10     Объясните фрагмент кода, как работает,можно ли заменить??? #2
Цитата Сообщение от mexxantom Посмотреть сообщение
vector<float> X(4);
vector<float> Y(4);
Создаются 2 вектора по 4 элемента. Отличий от динамического массива несколько. Во первых размер вектора можно менять. Во вторых размер можно узнать, вызвав от вектора функцию size(). В третьих удаляется вектор автоматически, ну и ещё некоторые мелочи.

Цитата Сообщение от mexxantom Посмотреть сообщение
sort(X.begin(),X.end());
sort(Y.begin(),Y.end());
Это вызов алгоритмов сортировки, которые упорядочивают соедержимое обоих векторов от начала и до конца. Кажется, по умолчанию сортировка по возрастанию...

Добавлено через 37 секунд
Цитата Сообщение от mexxantom Посмотреть сообщение
можно ли заменить???
Смотря зачем...
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
06.06.2011, 00:31  [ТС]     Объясните фрагмент кода, как работает,можно ли заменить??? #3
вот посмотри пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include "iostream"
#include "vector"
#include "algorithm"
 using namespace std;
void main()
{
    vector<float> X(4);
    vector<float> Y(4);
    cout<<"vvedite x y (nizhnia tochka 1 primoygolnika"; 
  cin>>X[0]>>Y[1];
    cout<<"vvedite x y verhnia tochka 1 primoygolnika"<<endl;
    cin>>Y[0]>>X[1];
  cout<<"vvedite x y (nizhnia tochka 2 primoygolnika"; 
 cin>>X[2]>>Y[3];
    cout<<"vvedite x y verhnia tochka 2 primoygolnika"<<endl;
    cin>>Y[2]>>X[3];
 
    if(X[0]>=X[1]||Y[1]>=Y[0]||X[2]>=X[3]||Y[3]>=Y[2])
      cout<<"tokogo primoygolnika ne syshestvyet"<<endl;
    else
    if(X[0]>=X[3]||X[2]>=X[1]||Y[3]>=Y[0]||Y[1]>=Y[2])//значит не пересекаются
    {
   cout<<"primoygolniki ne peresicaytsi"<<endl;
    }
    else
    {
        sort(X.begin(),X.end());
        sort(Y.begin(),Y.end());
        float S=(X[2]-X[1])*(Y[2]-Y[1]);
       cout<<"S="<<S;
    }    
}
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
06.06.2011, 00:42     Объясните фрагмент кода, как работает,можно ли заменить??? #4
И? Что-то не работает?
Хотя координаты при вводе перемешаны оригинальным образом
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
06.06.2011, 01:13  [ТС]     Объясните фрагмент кода, как работает,можно ли заменить??? #5
не всё работает ок просто если можно желательно заменить те строчки!
Что с вводом не так сначала нижняя и верхняя точка первого прямоугольника затем второго
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
06.06.2011, 01:20     Объясните фрагмент кода, как работает,можно ли заменить??? #6
Цитата Сообщение от grizlik78 Посмотреть сообщение
Отличий от динамического массива несколько. Во первых размер вектора можно менять. Во вторых размер можно узнать, вызвав от вектора функцию size(). В третьих удаляется вектор автоматически, ну и ещё некоторые мелочи.
И главное отличие: vector<T> - это класс, дин. масив - стандартное средство языка.
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
06.06.2011, 01:23     Объясните фрагмент кода, как работает,можно ли заменить??? #7
Цитата Сообщение от mexxantom Посмотреть сообщение
Что с вводом не так сначала нижняя и верхняя точка первого прямоугольника затем второго
Ну смотрим. Сначала нижняя первого. x и y.
C++
1
cin>>X[0]>>Y[1];
Хм. Почему X[0], а Y[1]? Ну ладно.
Дальше верхняя первого. x и y.
C++
1
cin>>Y[0]>>X[1];
Упс. А почему теперь сначала Y, а потом X? Это чтобы врага запутать?
Ну и вторая аналогично.
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
06.06.2011, 01:27  [ТС]     Объясните фрагмент кода, как работает,можно ли заменить??? #8
так может кто нибудь переделать с помощью массива или нет?
плз оч надо

Добавлено через 2 минуты
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну смотрим. Сначала нижняя первого. x и y.
C++
1
cin>>X[0]>>Y[1];
Хм. Почему X[0], а Y[1]? Ну ладно.
Дальше верхняя первого. x и y.
C++
1
cin>>Y[0]>>X[1];
Упс. А почему теперь сначала Y, а потом X? Это чтобы врага запутать?
Ну и вторая аналогично.
главное работает и этим всё сказано;
а как я её писал это уже мои заморочки
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
06.06.2011, 01:45     Объясните фрагмент кода, как работает,можно ли заменить??? #9
Ну если проблема только в векторах, то нет проблем.
C++
1
vector<float> X(4);
меняем на
C++
1
float X[4];
а
C++
1
sort(X.begin(),X.end());
на
C++
1
sort(X,X+4);
Но если и сортировку надо заменить... Ну тогда можно либо сишную qsort использовать, либо свою сортировку реализовать. Тем более эффективность здесь не важна.

Цитата Сообщение от mexxantom Посмотреть сообщение
главное работает и этим всё сказано;
а как я её писал это уже мои заморочки
Работает — не трогай!
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
06.06.2011, 02:31     Объясните фрагмент кода, как работает,можно ли заменить??? #10
mexxantom, ты бы написал, что эта программа должна делать. А то из твоего кода и постов непонятно.
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
06.06.2011, 10:36     Объясните фрагмент кода, как работает,можно ли заменить??? #11
Да вроде площадь пересечения прямоугольников определяет. Но в силу особенностей ввода координат, проверить правильность мой мозг не способен
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
06.06.2011, 15:14  [ТС]     Объясните фрагмент кода, как работает,можно ли заменить??? #12
вводятся 2 точки левая нижняя и правая верхняя двух прямоугольников,далее прямоугольники проверяются на пересечение и если пересекаются то ищется площадь пересечение
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
06.06.2011, 16:26     Объясните фрагмент кода, как работает,можно ли заменить??? #13
mexxantom, а зачем там сортировка? Да и ввод действительно странный.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 19:25     Объясните фрагмент кода, как работает,можно ли заменить???
Еще ссылки по теме:

Перевести фрагмент кода с С# на C++ C++
Фрагмент кода на C++ C++
Как можно перевести фрагмент кода с паскаля в с++? C++
C++ Объясните небольшой фрагмент кода (новые стандарты)
C++ Как по-другому написать заданный фрагмент кода?

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

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
06.06.2011, 19:25     Объясните фрагмент кода, как работает,можно ли заменить??? #14
Цитата Сообщение от Nameless One Посмотреть сообщение
а зачем там сортировка
Ну это-то как раз понятно. Если все координаты упорядочить, то две средние задают как-раз область пересечения. По-моему это действительно самый простой способ найти эту область.
Yandex
Объявления
06.06.2011, 19:25     Объясните фрагмент кода, как работает,можно ли заменить???
Ответ Создать тему
Опции темы

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