Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Savras
Новичок
-1 / 2 / 1
Регистрация: 03.01.2013
Сообщений: 10
25.01.2013, 15:10     инициализировать вектор значениями массива
  #1
Вот все что у меня получилось... В чем ошибка подскажите.
Код C++
1
2
3
    vector<int> vec;
    int arr[10]={1,2,3,4,5,6,7,8,9,10};
    vec.push_back(arr);
AdAgent
Объявления
25.01.2013, 15:10
ForEveR
В астрале
Эксперт C++
7110 / 4213 / 134
Регистрация: 24.06.2010
Сообщений: 9,728
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
В астрале
Эксперт C++
7110 / 4213 / 134
Регистрация: 24.06.2010
Сообщений: 9,728
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
Форумчанин
26 / 26 / 1
Регистрация: 26.10.2012
Сообщений: 98
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
Вредный кошак
6345 / 4036 / 175
Регистрация: 27.09.2012
Сообщений: 9,796
Записей в блоге: 1
25.01.2013, 18:16
  #7
Как вариант:
Код C++
1
vec.insert(vec.begin(),arr,arr+10);
UserAK
Форумчанин
68 / 68 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
25.01.2013, 18:29
  #8
Цитата Сообщение от Savras Посмотреть сообщение
arr[iter]
странная конструкция, что бы это значило?

Добавлено через 8 минут
количество элементов массива можно ещё так узнать _countof(arr)
Croessmah
Вредный кошак
6345 / 4036 / 175
Регистрация: 27.09.2012
Сообщений: 9,796
Записей в блоге: 1
25.01.2013, 18:36
  #9
Цитата Сообщение от UserAK Посмотреть сообщение
количество элементов массива можно ещё так узнать _countof(arr)
а ничего, что начинается имя функции со знака подчеркивания?
UserAK
Форумчанин
68 / 68 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
25.01.2013, 18:42
  #10
макрос как макрос
Croessmah
Вредный кошак
6345 / 4036 / 175
Регистрация: 27.09.2012
Сообщений: 9,796
Записей в блоге: 1
25.01.2013, 18:47     инициализировать вектор значениями массива
  #11
Цитата Сообщение от UserAK Посмотреть сообщение
макрос как макрос
Это не просто макрос это студийное детище!
Yandex
Объявления
25.01.2013, 18:47
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Ответов Автор Дата
C++ В классе инициализировать массив, в классе создать функцию вывода массива на экран
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать функцию вывода массива на экран. Прошу подсказать ГДЕ В ЛОГИКЕ...
С++ для начинающих 5 MMt 01.09.2014 13:40
C++ Инициализировать вектор unique_ptr
Как инициализировать вектор unique_ptr? std::unique_ptr<int> a(nullptr); std::unique_ptr<int> b(nullptr); std::vector<std::unique_ptr<int>>my_vector; my_vector.push_back(std::move(a));...
С++ для начинающих 7 Renji 08.06.2014 02:51
C++ Заполнение массива рассчитанными значениями
Мне нужно заполнить массив значениями M=Sin(n), где n=1,2,3...,50. У меня в массив записывается только первое значение double s, n; double Aarray = new double; for (int i...
С++ для начинающих 6 dudder88 25.11.2013 00:25
C++ ПРоблема со значениями массива
Пишу программу, в ней есть массив, значения которого задаются рандомно от 1 до 9. Когда вызывается функция, определяющая среднее значение, то сумма этих значений всегда равна -858992948. Помогите...
С++ для начинающих 1 mikhail90 29.03.2013 14:31
C++ Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой
Напишите пожалуйста программу Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой, а нули - между ними Размерность массива 100...
С++ для начинающих 3 alexcherep 25.09.2012 14:44
C++ Заполнение массива значениями из символьного массива
есть массив символов char z;есть целочисленный массив int b;каждый символ z это цифра 0-9 нужно в b записать символ z(не код символа а сам символ)for (int i=0;i<30000;i++) b=z-'0'большинство...
С++ для начинающих 5 Fatinho 03.05.2012 03:54
C++ Заполнение массива случайными значениями в С
Необходимо заполнить масив случайными значениями в диапазоне 1-9, причем они каждый раз должны быть другими, только random(9) заполняет каждый раз одинаковыми, randomize не хочет работать( for...
С++ для начинающих 3 vector8106 11.02.2012 17:42
C++ разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой...
помогите, пожалуйста, написать программу на С++: Нужно разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой, а нули - между...
С++ для начинающих 3 Vera_0709 28.12.2011 15:41
Опции темы

Текущее время: 07:30. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.