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

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

Восстановить пароль Регистрация
 
Inkognito21
1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 24
06.06.2014, 11:32     Не работает определение вектора #1
Не работает такое определение вектора 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++
Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) 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
5948 / 5553 / 1785
Регистрация: 18.12.2011
Сообщений: 14,188
Завершенные тесты: 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
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
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     Не работает определение вектора
Ответ Создать тему
Опции темы

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