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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
XuLLlHuK
Сообщений: n/a
#1

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

22.02.2012, 09:53. Просмотров 1257. Ответов 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
...
}
Как передать сделать правильно?:-)
П.С.Давно очень не занимался С++, не пойму что ему не нравится...

Заранее благодарен за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2012, 09:53     Из vector в массив.
Посмотрите здесь:

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

Почему не заполняется массив vector? - C++
Здравствуйте! Не могу понять, почему не заполняется массив vector.. Он в классе объявлен типа public. #include &lt;iostream&gt; ...

Stl vector как массив - C++
Есть функция принимающая указатель на массив и его длину и копирующая его в другой массив определенный указателем. void SetMass(float...

Скопировать двумерный массив в vector - C++
Добрый день всем. подскажите пожалуйста, как скопировать двумерный массив в vector? int i = {0}; vector&lt;vector&lt;int&gt; &gt; _v; _v = i;...

Массив объектов пользовательского типа в vector - C++
Доброго времени суток. Кто может подсказать что храниться в vector&lt; Employer* &gt; employerArray ( 4 ); при его инициализации?

массив обьектов std::vector (ошибка) - C++
у меня есть class Clients со всеми методами и переменными в другом классе у меня есть std::vector &lt;Clients&gt; List; который я хочу...

Скопировать элементы Vector в обычный массив - C++
Вобщем есть поля класса * arr // массив size // размер массива max_size //максимальный размер массива vector &lt;Model&gt; lst; ...

Запись в массив объекты класса (vector) - C++
// oop_laba2_2cpp: определяет точку входа для консольного приложения. //Вариант 6 //Объект – директория. // //Включает в себя ...

stl vector или ограниченный массив - C++
Скажите пожалуйста целесообразно ли использовать вектор структур с весом 100 байт и размером вектора не больше 10, а так же использовать...

Собственный динамический массив (аналог std::vector) - C++
Вот возникла идея написать что-то на подобии вектора, но возникла проблема что не так с kallocSize? Почему компилятор ее не пропускает? А...

Как с помощью <vector> сделать двумерный массив? - C++
как с помощью &lt;vector&gt; сделать двумерный массив?

Можно ли на основе vector'а создать двумерный массив - C++
Доброго времени суток. Собственно, вопрос заключен в самой теме. Возможно ли создать двумерный массив с помощью класса vector? И если да,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
22.02.2012, 10:30     Из vector в массив. #2
Массивы нельзя копировать целиком, их можно копировать только поэлементно.

Честно говоря, я не уверен, что вообще корректно работать с вектором массивов. Как вы добавляете элементы в вектор? Он не ругается? )
XuLLlHuK
Сообщений: n/a
22.02.2012, 10:33     Из vector в массив. #3
Добавляю с помощью push_back. Нет, не ругается!
Как тогда быть в этом случае?
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
22.02.2012, 10:34     Из vector в массив. #4
XuLLlHuK, массивы нельзя просто так присваивать друг другу. Вообще я бы посоветовал Вам использовать вектор вектор или вектор шаблонных массивов. Жить бы стало проще.
C++
1
2
std::vector<std::vector<float> > v;
std::vector<std::array<float, 3> > v;
Ну а уж если хочется использовать обычные массивы, то копируйте их содержимое по-одному элементу, или используя std::copy.
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
22.02.2012, 10:43     Из vector в массив. #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];
Yandex
Объявления
22.02.2012, 10:43     Из vector в массив.
Ответ Создать тему
Опции темы

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