Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
XuLLLHuK
0 / 0 / 0
Регистрация: 22.10.2014
Сообщений: 5
#1

Из vector в массив. - C++

22.02.2012, 09:53. Просмотров 1803. Ответов 4
Метки нет (Все метки)

Доброго всем утра коллеги!
Собственно, есть вектор с шаблоном
C++
1
std::vector<float[3]> vect;
и теперь надо каждый из элементов вектора передать в массив
C++
1
2
3
4
5
for(unsigned int i=0; i<vect.size(); i++){
float arr[3]={0, 0, 0};
arr = vect.at(i)//пишет: error C2106: '=' : left operand must be l-value
...
}
Как передать сделать правильно?:-)
П.С.Давно очень не занимался С++, не пойму что ему не нравится...

Заранее благодарен за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2012, 09:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Из vector в массив. (C++):

Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>>
Добрый день, подскажите пожалуйста как лучше и проще считывать файл. в файле...

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt;...

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b'...

VECTOR, двухмерный массив
Объясните пожалуйста принцип работы vector-а с двухмерным массивов. Ну например...

vector C++ присвоить в массив
Помогите пожалуйста найти неполадку в программе. Массиву из 10 целых чисел...

Stl vector как массив
Есть функция принимающая указатель на массив и его длину и копирующая его в...

4
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
22.02.2012, 10:30 #2
Массивы нельзя копировать целиком, их можно копировать только поэлементно.

Честно говоря, я не уверен, что вообще корректно работать с вектором массивов. Как вы добавляете элементы в вектор? Он не ругается? )
0
XuLLLHuK
0 / 0 / 0
Регистрация: 22.10.2014
Сообщений: 5
22.02.2012, 10:33 #3
Добавляю с помощью push_back. Нет, не ругается!
Как тогда быть в этом случае?
0
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
22.02.2012, 10:34 #4
XuLLlHuK, массивы нельзя просто так присваивать друг другу. Вообще я бы посоветовал Вам использовать вектор вектор или вектор шаблонных массивов. Жить бы стало проще.
C++
1
2
std::vector<std::vector<float> > v;
std::vector<std::array<float, 3> > v;
Ну а уж если хочется использовать обычные массивы, то копируйте их содержимое по-одному элементу, или используя std::copy.
1
Luke
39 / 39 / 7
Регистрация: 21.02.2012
Сообщений: 95
22.02.2012, 10:43 #5
Цитата Сообщение от XuLLlHuK Посмотреть сообщение
for(unsigned int i=0; i<vect.size(); i++){
float arr[3]={0, 0, 0};
arr = vect.at(i)//пишет: error C2106: '=' : left operand must be l-value
...
}
C++
1
arr[i] = vect[i];// оператор [] вернет ссылку и значение по ней можно будет поменять.
но для этого размер arr должен быть не меньше размера vect, иначе будет произведена запись за границы arr
так что это вполне возможно циклом, главное чтоб размер был подходящ
иначе придется использовать то, что подсказали выше

Добавлено через 4 минуты
Цитата Сообщение от XuLLlHuK Посмотреть сообщение
не пойму что ему не нравится...
не нравилось ему то что arr - указатель на начало массива а ему нужна сслыка lvalue.
arr[i];
0
22.02.2012, 10:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2012, 10:43
Привет! Вот еще темы с решениями:

Скопировать двумерный массив в vector
Добрый день всем. подскажите пожалуйста, как скопировать двумерный массив в...

Почему не заполняется массив vector?
Здравствуйте! Не могу понять, почему не заполняется массив vector.. Он в...

vector<Struct2{int,vector<struct1>}> или множественное наследование ...
Здравствуйте! Помогите, пожалуйста. Есть такие данные: typedef struct { ...

Ошибка [Linker error] undefined reference to `Vector::Vector(int)'
Добрый день. Делал по методички, и почему-то валятся ошибки... файл...


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

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

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