Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Inkognito21
1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 24
#1

Не работает определение вектора - C++

06.06.2014, 11:32. Просмотров 339. Ответов 5
Метки нет (Все метки)

Не работает такое определение вектора vector<int> v{9,10,5,3,2,5}, в этой программе:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <vector>
using namespace std;
int main()
{
  vector<int> v{9,10,5,3,2,5};
  for (int i = 0; i < v.size() / 2; i += 1)
  cout << v[i] + v[v.size() - i - 1] << endl;
  return 0;
}
работает, если записывать вот так v.push_back(9),v.push_back(10) итд. Но это долго и неудобно, подскажите в чем проблема может быть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2014, 11:32     Не работает определение вектора
Посмотрите здесь:

C++ Как осуществить определение модуля вектора? C++
Открытые функции класса: ввод массива, вывод массива, определение длины вектора C++
C++ определение координат конца радиуса- вектора
C++ Переменной R присвоить значение 1, если длина вектора А больше длины вектора В, и значение 0 в противном случае
Заданы три вектора a(n), b(m), c(k). Вывести наименование вектора, в котором максимальна сумма четных элементов, стоящих на нечетных местах C++
C++ Работа с классами(определение длины вектора)
STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора C++
C++ Повторное определение вектора
C++ Сохранение вектора в файл работает, а с загрузкой из файла беда
Определение размерности двумерного строкового вектора C++
C++ Изменение вектора. Наибольший элемент вектора
Ошибка с итераторами для целочисленного вектора и вектора структуры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
06.06.2014, 11:45     Не работает определение вектора #2
Цитата Сообщение от Inkognito21 Посмотреть сообщение
подскажите в чем проблема может быть.
В том, что вектор не C массив.

Зависит от компилятора.

Для С++11

C++
1
vector<int> v = {9,10,5,3,2,5};
Для более ранних:

C++
1
2
  int arr[]={9,10,5,3,2,5};
  vector<int> v (arr, arr + sizeof(arr) / sizeof(arr[0]) );
zss
Модератор
Эксперт С++
 Аватар для zss
6110 / 5713 / 1849
Регистрация: 18.12.2011
Сообщений: 14,590
Завершенные тесты: 1
06.06.2014, 11:47     Не работает определение вектора #3
Цитата Сообщение от Inkognito21 Посмотреть сообщение
vector<int> v={9,10,5,3,2,5};
Сообщение компилятора
error C2552: v: инициализация не агрегированных данных с помощью списка инициализации не допускается
Inkognito21
1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 24
06.06.2014, 11:49  [ТС]     Не работает определение вектора #4
ок, спасибо. Вообще странно у меня Vishual Studio 2012 стоит, попробую поставить 13..
Voivoid
 Аватар для Voivoid
593 / 269 / 12
Регистрация: 31.03.2013
Сообщений: 1,328
06.06.2014, 11:50     Не работает определение вектора #5
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
1
C++ (Qt)
1
vector<int> v = {9,10,5,3,2,5};
Не, символ '=' тут не обязателен

2012 студия вероятно initializer lists не поддерживает
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
06.06.2014, 11:52     Не работает определение вектора #6
Цитата Сообщение от Voivoid Посмотреть сообщение
Не, символ '=' тут не обязателен
Ну, когда он не обязателен, вопроса не возникает

Цитата Сообщение от zss Посмотреть сообщение
Сообщение компилятора
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

test.cpp(9) : error C2552: 'v' : non-aggregates cannot be initialized with initializer list
'std::vector<_Ty>' : Types with a base are not aggregate
with
[
_Ty=int
]

gcc version 4.8.1 (GCC) - Ok
Yandex
Объявления
06.06.2014, 11:52     Не работает определение вектора
Ответ Создать тему
Опции темы

Текущее время: 17:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru