|
Модераторы: bsa |
|
denes |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 134 Регистрация: 7.4.2010 Репутация: нет Всего: -7 |
Вектор представляет собой последовательность объектов с динамическим размером, которая обеспечивает произвольный доступ к массиву operator[]. Функция-член push_back копирует свои аргументы с помощью конструктора копирования, добавляет, что копия как последний элемент в векторе и увеличивает его размер на единицу. pop_back делает обратное, удаляя последний элемент. Вставка или удаление элементов с конца вектора берет амортизированное постоянное время, а вставка или удаление из любого другого места занимает линейное время. Это основы векторов. Их гораздо больше. В большинстве случаев вектор должен быть вашим первым выбором в массиве C-стиля. Прежде всего, они имеют динамический размер, что означает, что они могут расти по мере необходимости. Вам не нужно делать всевозможные исследования, чтобы определить оптимальный статический размер, как в случае с массивами C; вектор растет по мере необходимости, и он может быть изменен более или менее вручную, если вам нужно. Во-вторых, векторы предлагают проверку границ с помощью функции-члена at (но не с operator[]), так что вы можете что-то сделать, если ссылаетесь на несуществующий индекс, а не просто наблюдаете за сбоем в работе программы или хуже, продолжая выполнение с поврежденными данными.
если в с++ vector является заменой массива в си, то как создать двухмерный вектор? например нужно считать матрицу размером х на у из файла в вектор при этом размер матрицы неизвестен 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; } --------------------
Денис |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
denes |
|
||||||
Шустрый Профиль Группа: Участник Сообщений: 134 Регистрация: 7.4.2010 Репутация: нет Всего: -7 |
Вы хотите сказать не хватает строили или нет ? --------------------
Денис |
||||||
|
|||||||
denes |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 134 Регистрация: 7.4.2010 Репутация: нет Всего: -7 |
вообщето в C++
и там printf(\"---------------------------\n\"); Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка (активно) E0008 отсутствует закрывающая скобка WindowsProject1 c:\Users\Денис\source\repos\WindowsProject1\WindowsProject1\WindowsProject1.cpp 65 C++ идентификатор "IDC_MY" не определен C++ нераспознанная лексема Пример кода void Bar() {} int main() { using namespace Foo; Bar b; }... --------------------
Денис |
|||
|
||||
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |