С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
-3 / 2 / 4
Регистрация: 24.09.2015
Сообщений: 98

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

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

Студворк — интернет-сервис помощи студентам
Господа программисты, доброй ночи. Подскажите пожалуйста, что значит.
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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru