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

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

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

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

06.06.2014, 11:32. Просмотров 426. Ответов 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) итд. Но это долго и неудобно, подскажите в чем проблема может быть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2014, 11:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает определение вектора (C++):

Определение вектора с типом локального класса не работает - C++
#include &lt;iostream&gt; #include &lt;vector&gt; class c1 { int code; }; int main() {

Повторное определение вектора - C++
Почему можно написать vector&lt;int&gt; g(n, 8); , когда g — уже определенная глобальная переменная, и оно скомпилируется, но будет работать...

Как осуществить определение модуля вектора? C++ - C++
Помогите пожалуйста разобраться! программа осуществляет различные операции над вектором..сложение, вычитание, векторное и скалярное...

Работа с классами(определение длины вектора) - C++
Составить описание класса. Определить конструктор по умолчанию, конструктор с параметрами и методы класса. Написать программу,...

Определение размерности двумерного строкового вектора - C++
Не могу понять в чем ошибка? #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; #include &lt;vector&gt; using namespace std; ...

определение координат конца радиуса- вектора - C++
1. Объявить класс Cpoint, в котором заданы - две закрытые переменные вещественного типа x и y для представления точки на плоскости, ...

5
uglyPinokkio
326 / 229 / 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]) );
1
zss
Модератор
Эксперт С++
6474 / 6037 / 1980
Регистрация: 18.12.2011
Сообщений: 15,623
Завершенные тесты: 1
06.06.2014, 11:47 #3
Цитата Сообщение от Inkognito21 Посмотреть сообщение
vector<int> v={9,10,5,3,2,5};
Сообщение компилятора
error C2552: v: инициализация не агрегированных данных с помощью списка инициализации не допускается
0
Inkognito21
1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 24
06.06.2014, 11:49  [ТС] #4
ок, спасибо. Вообще странно у меня Vishual Studio 2012 стоит, попробую поставить 13..
0
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
06.06.2014, 11:50 #5
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
1
C++ (Qt)
1
vector<int> v = {9,10,5,3,2,5};
Не, символ '=' тут не обязателен

2012 студия вероятно initializer lists не поддерживает
1
uglyPinokkio
326 / 229 / 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
0
06.06.2014, 11:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 11:52
Привет! Вот еще темы с ответами:

Открытые функции класса: ввод массива, вывод массива, определение длины вектора - C++
Данные класса: массив N(10). Открытые функции класса: ввод массива, вывод массива, определение длины вектора. Длина массива определяется...

Сохранение вектора в файл работает, а с загрузкой из файла беда - C++
сохранение в файл, работает успешно fstream fdat; fdat.open(&quot;book.dat&quot;, ios::out | ios::trunc); if (!fdat) { ...

Найти сколько элементов первого вектора совпадают с элементами второго вектора - C++
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;vector&gt; #include &lt;set&gt; using namespace std; void main() { ...

Дан список, элементы которого являются координатами вектора. Найти длину вектора - C++
1. Дан список, элементы которого являются координатами вектора в n-мерном пространстве. Найти длину вектора.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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