С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/114: Рейтинг темы: голосов - 114, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 04.01.2009
Сообщений: 4

std::vector, классы и функции.

04.01.2009, 23:30. Показов 21081. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Цель сделать вектор класса. Но в классе должен быть вектор. Обращения к элементам выглядит так, а как работать с вектором?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <vector>
using namespace std;
class primer{
    public:
    int A;
    int B;
       //vector<int>mas;  // как к нему обратится?
    primer(int a,int b): A(a), B(b){}
};
vector <primer> pr;
int main (){    
    
        pr.push_back(primer(7,7));
}
И вопрос номер два, как передать вектор параметром в функцию?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2009, 23:30
Ответы с готовыми решениями:

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Передача функции указатель на элемент std::vector<std::string>
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Как передать целочисленную матрицу типа std::vector<std::vector<int> > в функцию?
Здравствуйте. Почитал на форуме, но так и не понял что я делаю не так. Имеется двумерный вектор. Размера .. Нужно его передать в...

6
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
04.01.2009, 23:59
Цитата Сообщение от StavNight0ver Посмотреть сообщение
а как работать с вектором?
думаю ето поможет
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <vector>   
using namespace std; 
 
class primer
{   
public:  
    primer() {}
 
    void addElemVector(int x)
    {
        mas.push_back(x);
    }
 
    int getElem(int elem)
    {
        if(elem > mas.size()) return -1;
 
        vector<int>::iterator i;
        int y,x = 0;
        for(i = mas.begin(); /*i!= mas.end() ||*/ x != elem; ++i,++x)
        {
            y = *i;
        }
        return y;
    }
 
    void clearMas()
    {
        mas.clear();
    }
 
private:
    vector<int> mas;
};    
int main ()
{   
    primer p;
    p.addElemVector(10);
    p.addElemVector(20);
    p.addElemVector(66);
    cout<<p.getElem(2)<<endl;
    p.clearMas();
    p.addElemVector(1);
    p.addElemVector(2);
    p.addElemVector(6);
    cout<<p.getElem(2)<<endl;
    return 0;
}
2
0 / 0 / 0
Регистрация: 04.01.2009
Сообщений: 4
05.01.2009, 00:58  [ТС]
Ну это не для массива состоящего из класса, но чуть подправив все работает и с массивом. правда для добавления элемента нужно чтобы какое то значение уже было, то есть элемент массива должен быть создан. См ниже.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>  
#include <vector>     
using namespace std;   
   
class primer  
{     
public:    
     primer(int a): A(a) {}  
     int A;  
     
     void addElemVector(int x)  
     {  
         mas.push_back(x);  
     }  
   
     int getElem(int elem)  
     {  
         if(elem > mas.size()) return -1;  
   
         vector<int>::iterator i;  
         int y,x = 0;  
         for(i = mas.begin(); /*i!= mas.end() ||*/ x != elem; ++i,++x)  
         {  
             y = *i;  
         }  
         return y;  
     }  
   
     void clearMas()  
     {  
         mas.clear();  
     }  
   
 private:  
     vector<int> mas;  
 };      
 int main ()  
 {     
     vector<primer> p;  
     p.push_back(primer(1));
     p[0].addElemVector(20);
     cout<<p[1].getElem(1)<<endl;  
     return 0;  
 }
А для передачи простого вектора в функцию идеи есть?
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
05.01.2009, 01:07
Цитата Сообщение от StavNight0ver Посмотреть сообщение
А для передачи простого вектора в функцию идеи есть?
ну тогда так
C++
1
 void addVector(const vector<int> &vec)
1
0 / 0 / 0
Регистрация: 04.01.2009
Сообщений: 4
05.01.2009, 01:21  [ТС]
А можно подробнее, сама функция и ее вызов? Мне компилятор постоянно пишет что преобразовать не может.
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
05.01.2009, 01:35
я незнаю шо ты имено потом хочешь сделать с тем вектором, но вот пример
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>     
#include <vector>        
using namespace std;      
      
class primer     
{        
public:       
     primer(int a): A(a) {}     
     int A;     
        
     void addElemVector(int x)     
     {     
         mas.push_back(x);     
     }     
      
     int getElem(int elem)     
     {     
         if(elem > mas.size()) return -1;     
      
         vector<int>::iterator i;     
         int y,x = 0;     
         for(i = mas.begin(); /*i!= mas.end() ||*/ x != elem; ++i,++x)     
         {     
             y = *i;     
         }     
         return y;     
     }     
      
     void clearMas()     
     {     
         mas.clear();     
     }     
      
     void addVector(vector<int> &vec)
     {
         vector<int>::iterator i;
         for(i = vec.begin(); i != vec.end(); ++i)
             mas.push_back(*i);
     }
 private:     
     vector<int> mas;     
 }; 
 
 int main ()     
 {        
     vector<primer> p; 
     vector<int> x;
     x.push_back(10);
     x.push_back(15);
     p.push_back(primer(1));  
     p[0].addElemVector(20);  
     p[0].addVector(x);
     cout<<p[0].getElem(1)<<endl;
     cout<<p[0].getElem(3)<<endl;
     return 0;     
 }
здесь вектор "x" передаем в класс и добавляем его значения вектору "mas"
1
0 / 0 / 0
Регистрация: 04.01.2009
Сообщений: 4
05.01.2009, 12:22  [ТС]
Я не совсем так выразился, но разобрался. Вопросов больше не имею. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2009, 12:22
Помогаю со студенческими работами здесь

Вывести значения std::vector<std::vector<int*> >
Подскажите, как вывести значения? const size_t row = 3; const size_t col = 3; std::vector&lt;std::vector&lt;int*&gt; &gt; imatrix; ...

Как изменять размер std::vector<std::vector>?
Здравствуйте, как нужно изменять размер std::vector&lt;std::vector&gt; например: std::vector&lt;std::vector&lt;float&gt;&gt; data; ...

Непонятные функции std::vector
Здорова господа! Тут я решил своими словами описать стандартные контейнеры их всего 14. Решил описать с примерчиками возможности каждого...

Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator>
Вопрос по вектору. Допустим есть вектор, std::vector&lt;int&gt; vec; на каком - то этапе заполнения я ставлю закладку итератора, ...

Нужна реализация функции std::vector::insert()
Нужна реализация функции std::vector::insert() 1)iterator insert (iterator position, const value_type&amp; val); 2) void insert (iterator...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru