Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2017, 10:35   #1
dima.karpov
Пользователь
 
Регистрация: 20.11.2016
Сообщений: 51
По умолчанию добавить элемент в конец массива

как сделать, чтобы в my_table[] можно было добавить еще один элемент в конец, например, 2, 'C', 3 с консоли.

Код:
struct Table_Entry
{
	unsigned int  current_state_id;
	unsigned char transition_letter;
	unsigned int  next_state_id;
};


Table_Entry    my_table[] =
{
	{    0,          'A',        1},  
	{    0,          'B',        2},  
	{    0,          'C',        3}, 
	{    1,          'A',        1},  
	{    1,          'B',        3},  
	{    1,          'C',        0},  
};

void main()
{
	for (int i = 0; i<6; i++)
	{
		cout <<  my_table[i].current_state_id << " " <<  my_table[i].transition_letter << " " <<  my_table[i].next_state_id << endl;
	}
	system("pause");
}
dima.karpov вне форума Ответить с цитированием
Старый 14.03.2017, 10:41   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В каком смысле добавить?
std::vector либо свои велосипеды имитирующие его (например создать массив большего размера и заполнять, хранить в переменной количество заполненных элементов)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.03.2017, 10:51   #3
dima.karpov
Пользователь
 
Регистрация: 20.11.2016
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
В каком смысле добавить?
std::vector либо свои велосипеды имитирующие его (например создать массив большего размера и заполнять, хранить в переменной количество заполненных элементов)
Код:
vector <Table_Entry> my_table;  // создал вектор
// а как начальные значения из my_table записать в этот вектор???

Table_Entry    my_table[] =
{

	{    0,          'A',        1},  
	{    0,          'B',        2}, 
	{    0,          'C',        3}, 
	{    1,          'A',        1}, 
	{    1,          'B',        3},  
	{    1,          'C',        0},  
};
dima.karpov вне форума Ответить с цитированием
Старый 14.03.2017, 11:10   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

push_back и т.п. или что-то типа
Код:
vector<Table_Entry> my_table { Table_Entry(0, 'A', 1), Table_Entry(0, 'B', 2) };
Смотрите описание функций и примеры
http://en.cppreference.com/w/cpp/container/vector
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.03.2017, 11:19   #5
dima.karpov
Пользователь
 
Регистрация: 20.11.2016
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
push_back и т.п. или что-то типа
Код:
vector<Table_Entry> my_table { Table_Entry(0, 'A', 1), Table_Entry(0, 'B', 2) };
Смотрите описание функций и примеры
http://en.cppreference.com/w/cpp/container/vector
Код:
// и так ругается: error expected a ';'
	vector<Table_Entry> my_table { Table_Entry(0, 'A', 1), Table_Entry(0, 'B', 2) };

// и так ругается: No suitable constructor exists to convert from int to Table_Entry
	my_table.push_back(Table_Entry(0, 'A', 1));

Последний раз редактировалось dima.karpov; 14.03.2017 в 11:21.
dima.karpov вне форума Ответить с цитированием
Старый 14.03.2017, 11:27   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

первое вроде доступно с С++11, может старый компилятор или не поставлен флаг об этом (если gcc).

Про "No suitable constructor exists" я не помню синтаксис инициализации структур/классов в С++, если { 0, 'A', 1} работало у вас раньше, то наверно и тут можно. Я бы просто конструктор в Table_Entry добавил.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.03.2017 в 11:34.
Alex11223 вне форума Ответить с цитированием
Старый 14.03.2017, 11:30   #7
dima.karpov
Пользователь
 
Регистрация: 20.11.2016
Сообщений: 51
По умолчанию

у меня даже на этот пример ругается
std::vector<int> v = {7, 5, 16, 8};
dima.karpov вне форума Ответить с цитированием
Старый 14.03.2017, 11:33   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какой компилятор?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.03.2017, 11:37   #9
dima.karpov
Пользователь
 
Регистрация: 20.11.2016
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Какой компилятор?
visual studio 2012
dima.karpov вне форума Ответить с цитированием
Старый 14.03.2017, 11:47   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да, до 2013 VS не поддерживает initializer list.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить новый элемент массива, если его значение не равно значениям элементов заданного массива ? ассемблер Пиф Помощь студентам 1 09.03.2013 23:35
Поставить мин. элемент вначало массива, а макс.-в конец dima-intro Помощь студентам 7 19.12.2010 18:23
Как удалить(добавить) элемент массива? vanek1 Помощь студентам 3 15.12.2010 22:26
Записать первый элемент массива в конец Pecho Помощь студентам 3 24.11.2010 23:14
Как удалить\добавить элемент массива с++ Sanu0074 Помощь студентам 3 15.06.2010 11:53