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

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

Войти
Регистрация
Восстановить пароль
 
Savras
-1 / 2 / 1
Регистрация: 03.01.2013
Сообщений: 10
#1

инициализировать вектор значениями массива - C++

25.01.2013, 15:10. Просмотров 578. Ответов 10
Метки нет (Все метки)

Вот все что у меня получилось... В чем ошибка подскажите.
C++
1
2
3
    vector<int> vec;
    int arr[10]={1,2,3,4,5,6,7,8,9,10};
    vec.push_back(arr);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 15:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос инициализировать вектор значениями массива (C++):

Как инициализировать vector<comlex<double>> заданными значениями? - C++
Добрый день. У меня есть табличка с косинусами и синусами первообразных корней из единички: {-1.00000000000000000000000000000000, ...

Инициализировать вектор unique_ptr - C++
Как инициализировать вектор unique_ptr? std::unique_ptr&lt;int&gt; a(nullptr); std::unique_ptr&lt;int&gt; b(nullptr); ...

Как инициализировать вектор в классе? - C++
#pragma once #include &lt;iostream&gt; using namespace std; #include &lt;string&gt; #include &lt;sstream&gt; #include &lt;stack&gt; #include &lt;vector&gt; ...

Инициализировать вектор итераторами множества - C++
Возможна ли инициализация вектора итераторами? set&lt;int&gt; s={1,2,3,4,5}; set&lt;int&gt;::iterator it=s.begin(),it2=s.end(); ...

Как инициализировать вектор set-ов? - C++
Как инициализировать вектор сетов? vector&lt;set&lt;int&gt; &gt; vec; Количество set-ов узнаётся во время выполнения программы, до инициализации....

Инициализировать вектор потоком ввода из консоли - C++
Как вариант: int n; cin &gt;&gt; n; std::vector&lt;int&gt; a (n); Хочу: // перегрузка оператора std::vector&lt;int&gt; a( _input_ ); //...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
25.01.2013, 15:15 #2
Savras,
C++
1
vec.assign(arr, arr + sizeof(arr) / sizeof(*arr));
Savras
-1 / 2 / 1
Регистрация: 03.01.2013
Сообщений: 10
25.01.2013, 15:20  [ТС] #3
А если через push_back нельзя? Если нельзя то почему?
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
25.01.2013, 15:22 #4
Savras, Ну. Как бэ push_back принимает 1 элемент. Можно в цикле.
Savras
-1 / 2 / 1
Регистрация: 03.01.2013
Сообщений: 10
25.01.2013, 15:33  [ТС] #5
Мне и нужно было в цикле, просто у меня компилятор ругается при передаче, и я не пойму почему...
C++
1
2
    for(vector<int>::iterator iter=vec.begin(); iter!=vec.end(); iter++)
        vec.push_back(arr[iter]);
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
25.01.2013, 15:37 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <conio.h>
#include <vector>
 
using namespace std;
 
int main()
{
    vector<int> vec;
    int arr[10]={1,2,3,4,5,6,7,8,9,10};
    int i = 0;
    while(i < sizeof(arr)/sizeof(arr[0]))
    {
        vec.push_back(arr[i]);
        i++;
    }
    i = 0;
    while(i < vec.size())
    {
        cout<<vec[i]<<" ";
        i++;
    }
    getch();
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Savras Посмотреть сообщение
for(vector<int>::iterator iter=vec.begin(); iter!=vec.end(); iter++)
* * * * vec.push_back(arr[iter]);
попробуй так должно работать
Croessmah
Модератор
Эксперт CЭксперт С++
13147 / 7410 / 830
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 18:16 #7
Как вариант:
C++
1
vec.insert(vec.begin(),arr,arr+10);
UserAK
73 / 73 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
25.01.2013, 18:29 #8
Цитата Сообщение от Savras Посмотреть сообщение
arr[iter]
странная конструкция, что бы это значило?

Добавлено через 8 минут
количество элементов массива можно ещё так узнать _countof(arr)
Croessmah
Модератор
Эксперт CЭксперт С++
13147 / 7410 / 830
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 18:36 #9
Цитата Сообщение от UserAK Посмотреть сообщение
количество элементов массива можно ещё так узнать _countof(arr)
а ничего, что начинается имя функции со знака подчеркивания?
UserAK
73 / 73 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
25.01.2013, 18:42 #10
макрос как макрос
Croessmah
Модератор
Эксперт CЭксперт С++
13147 / 7410 / 830
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 18:47 #11
Цитата Сообщение от UserAK Посмотреть сообщение
макрос как макрос
Это не просто макрос это студийное детище!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2013, 18:47
Привет! Вот еще темы с ответами:

Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой - C++
Напишите пожалуйста программу Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными...

Заменить элементы массива со значениями в заданном интервале на среднее арифметическое значение массива - C++
В одномерном массиве A (n) заменить элементы меньше заданного K и больше от заданного L на среднее арифметическое значение массива, где 0...

Заполнение массива значениями из символьного массива - C++
есть массив символов char z;есть целочисленный массив int b;каждый символ z это цифра 0-9 нужно в b записать символ z(не код символа а...

Заполнение массива значениями - C++
Всем привет! В результате данная программа выдает массив. Но не могу понять, почему он заполняется именно этими цифрами - от 0 до 6?...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.01.2013, 18:47
Ответ Создать тему
Опции темы

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