Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программирование и решение задач на ПЭВМ/ЭВМ http://www.cyberforum.ru/cpp-beginners/thread2241884.html
Товарищи программисты, я не могу сделать 3 задачи прошу вас помочь мне с этим. Я буду очень благодарен если вы мне поможете их сделать. Все задания в документе. Заранее спасибо!
C++ Как расставить скобки в выражении всеми возможными способами?
В общем решаю одну непростую задачку, а условие такое: Дана строка чисел (например 123456=5) и сразу за ней знак равно и ещё одно число. Нужно скомбинировать такие варианты чисел, скобок и знаков...
Если в матрице встречается ноль, то нужно обнулить столбец и строку, где находится этот ноль C++
Дан двумерный массив n на m. Если в массиве встречается ноль, то нужно обнулить столбец и строку ,где находится этот ноль.
C++ Удалить из строки символов все слова нечетной длины Помогите написать на языке С++, желательно простым языком, чтобы преподавательница не придралась http://www.cyberforum.ru/cpp-beginners/thread2241852.html
C++ Вычисления выражения в обратной польской записи http://www.cyberforum.ru/cpp-beginners/thread2241835.html
На вход подается выражение в обратной польской записи и его нужно вычислить. Как это реализовать?
Нахождение суммы в двумерном массиве C++
Помогите с нахождение суммы в двумерном массиве, не могу понять в чем ошибка. Выводит одно и тоже: -757935354 sum = 0; for (int i = 0; i < s; i++) for (int j = 0; j < n; j++) sum = sum +...
Программа для нахождения максимума с условием, не могу найти баг C++
Решал задачу №112288 с сайта Ссылка удалена Проблема заключается в том, что когда руками тестирую получаю верные ответы, но отправляя задачу на проверку не получаю ни одного верного теста. Только...
C++ Сортировка в классе Описать 2 метода (пузырька и выбора) в одном классе http://www.cyberforum.ru/cpp-beginners/thread2241801.html
C++ Проверка на ввод http://www.cyberforum.ru/cpp-beginners/thread2241790.html
Всем доброго времени суток. Помогите пожалуйста дописать программу, чтобы выдавалась ошибка, если введено не отрицательное число. Условие звучит так: "Написать программу, которая определяет...
C++ Построить таблицу значений функции Помогиите,срочно надо сдавать!!!!!!!!!!!!! http://www.cyberforum.ru/cpp-beginners/thread2241786.html
Серргей
-4 / 0 / 2
Регистрация: 16.03.2015
Сообщений: 47
0

Как у вас двумерные вектора устроены?

07.05.2018, 20:44. Просмотров 891. Ответов 38
Метки (Все метки)

Вектор представляет собой последовательность объектов с динамическим размером, которая обеспечивает произвольный доступ к массиву operator[]. Функция-член push_back копирует свои аргументы с помощью конструктора копирования, добавляет, что копия как последний элемент в векторе и увеличивает его размер на единицу. pop_back делает обратное, удаляя последний элемент. Вставка или удаление элементов с конца вектора берет амортизированное постоянное время, а вставка или удаление из любого другого места занимает линейное время. Это основы векторов. Их гораздо больше. В большинстве случаев вектор должен быть вашим первым выбором в массиве C-стиля. Прежде всего, они имеют динамический размер, что означает, что они могут расти по мере необходимости. Вам не нужно делать всевозможные исследования, чтобы определить оптимальный статический размер, как в случае с массивами C; вектор растет по мере необходимости, и он может быть изменен более или менее вручную, если вам нужно. Во-вторых, векторы предлагают проверку границ с помощью функции-члена at (но не с operator[]), так что вы можете что-то сделать, если ссылаетесь на несуществующий индекс, а не просто наблюдаете за сбоем в работе программы или хуже, продолжая выполнение с поврежденными данными.

если в с++ vector является заменой массива в си, то как создать двухмерный вектор?
например нужно считать матрицу размером х на у из файла в вектор при этом размер матрицы неизвестен

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
#include <stdlib.h>
#include <stdio.h>
 
int NUM_OBJECTS = 20;
 
typedef struct{
    int* val;
    void* next;
} n_obj;
 
#define Q_INT malloc(sizeof(int))
#define Q_OBJ malloc(sizeof(n_obj))
#define Q_SEQ(x) calloc((x), sizeof(int))
 
int main()
{
    int clear_i;
    int i, left_i, cur_sz, cur_num;
    n_obj **cl;
    n_obj *temp;
    n_obj *cur_list;
    n_obj *cur_seq;
     
    cl = malloc(sizeof(n_obj*)*NUM_OBJECTS);
     
    for(i=0;i<NUM_OBJECTS;i++)
    {
        cl[i] = Q_OBJ;
        cl[i]->val = NULL;
         
        temp = Q_OBJ;
        temp->val = Q_SEQ(1);
         
        temp->val[0] = i + 1;
         
        temp->next = cl[i]; 
        cl[i] = temp;
         
        cur_list = cl[i];
        for(left_i=0; left_i<i; left_i++)
        {
            for(cur_seq=cl[left_i];cur_seq->val!=NULL;cur_seq=cur_seq->next)
            {               
                if(cur_seq->val[0]<=(i - left_i))
                {
                    temp = Q_OBJ;
                    temp->val = Q_SEQ(left_i + 3);
                     
                    temp->val[0] =  i - left_i;
                     
                    temp->next = cur_list->next;
                    cur_list->next = temp; 
                    cur_list = temp;
                     
                    for(cur_num=0;cur_num<=left_i;cur_num++)
                        cur_list->val[cur_num+1] = cur_seq->val[cur_num];
                }
            }
        }
    }
     
    for(i = 0; i < NUM_OBJECTS; i++)
    {
        cur_sz = 0;
        printf("---------------------------\n");
        for(cur_list = cl[i]; cur_list->val != NULL; cur_list = cur_list->next)
        {
            for(clear_i = 0; cur_list->val[clear_i] != 0; clear_i++)
            {
                printf("%d ", cur_list->val[clear_i]);
            }
            printf("\n");
            cur_sz++;
        }
        printf("Number of partitions = %d\n", cur_sz);
     
    }
    return 0;
}
Вроде так ?

Вернуться к обсуждению:
Как у вас двумерные вектора устроены?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2018, 20:44
Готовые ответы и решения:

Как устроены проекты VS
Подскажите плиз, как организована прога в VS? И определения что такое solution, project и тд? Как...

Как устроены чаты?
Всем привет. Я раньше никогда не висел на чатах, а тут случайно попал, мне стало интересно как они...

Как устроены события?
Привет! Можете, пожалуйста, рассказать про то, как устроены события, как происходит сам процесс...

Как устроены массивы
Здрасте! Прочитал на сайте про $_SERVER &quot;... в него PHP-интерпретатор помещает переменные,...

Как устроены игры?
Есть ли книга или руководство на русском, в котором объясняется как устроены компьютерные игры? Я...

38
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru