-3 / 2 / 4
Регистрация: 24.09.2015
Сообщений: 98

Объявление вектора

11.04.2017, 01:40. Показов 2849. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа программисты, доброй ночи. Подскажите пожалуйста, что значит.
C++
1
vector <int,int>
Какой вектор создается и как его вывести?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2017, 01:40
Ответы с готовыми решениями:

Неправильное объявление вектора
Написал алгоритм факторизации, но при выводе множителей, ничего не выводит, ибо все элементы в векторе почему-то нули. При инициализации...

Объявление вектора в классе
Здравствуйте! объявляю структуру в h файле: struct Admin { char login_admin; char pass_admin; }; class Nev_potok_blok { ...

Посмотрите объявление вектора и попытайтесь создать динамический массив, содержащий элементы типа char
#include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main() { vector&lt;int&gt; DynArrNums (3); DynArrNums = 365; ...

7
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.04.2017, 01:44
Цитата Сообщение от TheTangro Посмотреть сообщение
Какой вектор создается и как его вывести?
Никакой не создаётся.
0
-3 / 2 / 4
Регистрация: 24.09.2015
Сообщений: 98
11.04.2017, 01:55  [ТС]
C++
1
vector <int,int> vect;
Ну допустим там хранятся какие-то данные. Что это, двумерный массив или что-то еще? Как это вывести на экран? Помогите, пожалуйста.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.04.2017, 02:00
У тебя это компилируется?
0
-3 / 2 / 4
Регистрация: 24.09.2015
Сообщений: 98
11.04.2017, 02:05  [ТС]
Да не знаю я. Просто пытаюсь разобраться в чужом коде. И не понимаю, что означает такая запись:
C++
1
2
typedef pair<int, int> PInt;
typedef vector<PInt> VPInt;
Ну, typdef я знаю что значит, но за тип данных VPInt получается - хз. Очень хотелось бы, чтобы вы подсказали.
Вот весь код:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <vector>
#include <limits>
using namespace std;
 
typedef pair<int, int> PInt;
typedef vector<int> VInt;
typedef vector<VInt> VVInt;
typedef vector<PInt> VPInt;
 
const int inf = numeric_limits<int>::max();
 
/*
 * Решает задачу о назначениях Венгерским методом.
 * matrix: прямоугольная матрица из целых чисел (не обязательно положительных).
 *         Высота матрицы должна быть не больше ширины.
 * Возвращает: Список выбранных элементов, по одному из каждой строки матрицы.
 */
VPInt hungarian(const VVInt &matrix) {
   
   // Размеры матрицы
   int height = matrix.size(), width = matrix[0].size();
   
   // Значения, вычитаемые из строк (u) и столбцов (v)
   VInt u(height, 0), v(width, 0);
   
   // Индекс помеченной клетки в каждом столбце
   VInt markIndices(width, -1);
   
   // Будем добавлять строки матрицы одну за другой
   for(int i = 0; i < height; i++) {
      VInt links(width, -1);
      VInt mins(width, inf);
      VInt visited(width, 0);
      
      // Разрешение коллизий (создание "чередующейся цепочки" из нулевых элементов)
      int markedI = i, markedJ = -1, j;
      while(markedI != -1) {
         // Обновим информацию о минимумах в посещенных строках непосещенных столбцов
         // Заодно поместим в j индекс непосещенного столбца с самым маленьким из них
         j = -1;
         for(int j1 = 0; j1 < width; j1++)
            if(!visited[j1]) {
               if(matrix[markedI][j1] - u[markedI] - v[j1] < mins[j1]) {
                  mins[j1] = matrix[markedI][j1] - u[markedI] - v[j1];
                  links[j1] = markedJ;
               }
               if(j==-1 || mins[j1] < mins[j])
                  j = j1;
            }
            
         // Теперь нас интересует элемент с индексами (markIndices[links[j]], j)
         // Произведем манипуляции со строками и столбцами так, чтобы он обнулился
         int delta = mins[j];
         for(int j1 = 0; j1 < width; j1++)
            if(visited[j1]) {
               u[markIndices[j1]] += delta;
               v[j1] -= delta;
            } else {
               mins[j1] -= delta;
            }
         u[i] += delta;
         
         // Если коллизия не разрешена - перейдем к следующей итерации
         visited[j] = 1;
         markedJ = j;
         markedI = markIndices[j];   
      }
      
      // Пройдем по найденной чередующейся цепочке клеток, снимем отметки с
      // отмеченных клеток и поставим отметки на неотмеченные
      for(; links[j] != -1; j = links[j])
         markIndices[j] = markIndices[links[j]];
      markIndices[j] = i;
   }
   
   // Вернем результат в естественной форме
   VPInt result;
   for(int j = 0; j < width; j++)
      if(markIndices[j] != -1)
         result.push_back(PInt(markIndices[j], j));
   return result;
}
Добавлено через 1 минуту
В результате выполнения функции hungarian возвращается VPInt. Весь вопрос как его вывести.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.04.2017, 02:10
Цитата Сообщение от TheTangro Посмотреть сообщение
Да не знаю я. Просто пытаюсь разобраться в чужом коде. И не понимаю, что означает такая запись:
И где здесь такое?
Цитата Сообщение от TheTangro Посмотреть сообщение
vector <int,int> vect;
Тут vector <vector<int> > и vector <pair<int, int> >.
Цитата Сообщение от TheTangro Посмотреть сообщение
C++
1
2
typedef pair<int, int> PInt; // другое имя типа для пары из двух int
typedef vector<PInt> VPInt;// другое имя типа для вектора пар из двух int
0
-3 / 2 / 4
Регистрация: 24.09.2015
Сообщений: 98
11.04.2017, 02:18  [ТС]
Простите, пожалуйста, похоже, уже пора ложиться спать, голова уже не варит и очевидного не вижу(
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.04.2017, 02:43
...
Цитата Сообщение от TheTangro Посмотреть сообщение
C++
1
2
typedef vector<int> VInt;// другое имя для типа вектора int-ов
typedef vector<VInt> VVInt; // другое имя для типа вектора векторов int-ов
Добавлено через 22 минуты
Цитата Сообщение от TheTangro Посмотреть сообщение
В результате выполнения функции hungarian возвращается VPInt. Весь вопрос как его вывести.
C++
1
2
for (size_t i = 0; i < result.size(); ++i)
        cout << result[i].first << ' ' << result[i].second << endl;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2017, 02:43
Помогаю со студенческими работами здесь

Как обозначить значения внутри вектора для другого вектора итератором?
Например, в одном векторе есть числа 1, 3, 4. В другом векторе их 5: 25 95 45 65 75. Как сделать так, чтобы во втором векторе удалились...

Найти сколько элементов первого вектора совпадают с элементами второго вектора
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;vector&gt; #include &lt;set&gt; using namespace std; void main() { ...

Дан список, элементы которого являются координатами вектора. Найти длину вектора
1. Дан список, элементы которого являются координатами вектора в n-мерном пространстве. Найти длину вектора.

Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5)
Ребята помогите пожалуйста с задачкой. Я сам не шарю в C++, но в этом семестре появился этот предмет! И завтра его надо будет сдать :( Буду...

Вывести значение вектора на экран. Манипуляции с элементами вектора
Нужно решить задачу при помощи STL: 1) Создать контейнер для вектора на 12 элементов типа double. Инициализировать эти элементы...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования. . . .
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
Максимальная производительность C#: Процессорный кэш
stackOverflow 20.04.2025
Знакомство с внутренним устройством процессорного кэша — ключевой шаг в написании по-настоящему быстрого кода на C#. Этот слой архитектуры компьютера часто ускользает от внимания разработчиков, но. . .
Максимальная производительность C#: Введение в микрооптимизации
stackOverflow 20.04.2025
В мире разработки на C# многие привыкли полагаться на . NET Runtime, который "магическим образом" сам оптимизирует код. И часто это работает - современные JIT-компиляторы творят чудеса. Но когда речь. . .
MVC фреймворк в PHP
Jason-Webb 19.04.2025
Архитектурный паттерн Model-View-Controller (MVC) – это не просто модный термин из мира веб-разработки. Для PHP-программистов это фундаментальный подход к организации кода, который радикально меняет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru