Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 1
1

Push_back вектора по указателю - возможно ли

15.07.2015, 02:30. Показов 1949. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я хочу объявить вектор в одной функции и работать с ним методами в другой.

Самый простой путь - объявить вектор глобально, что мне не очень нравится. Второй путь - передать в функцию копию вектора, а потом возвращать его обратно. Мне и этот путь представляется неэстетичным, поэтому я хочу передать указатель на вектор в функцию, написав что-то типа

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <vector>
#include <iostream>
 
using namespace std;
 
int function(int *vec)
{
    vec.push_back(3);
    cout << vec[0] << vec[1] << endl;
 
return 0;
}
 
int main()
{
    vector <int> vec;
    vec.push_back(1);
 
    function(&vec[0]);
 
return 0;
}
Однако, я не понимаю, указатель на что мне передавать. Указатель на первый элемент, как в примере выше, мне не нужен, так как push_back не выловит вектор по первому элементу.
Я нашел что-то близкое про vec.data(), однако все же не понимаю, как его использовать.
Я мог бы передать указатель на первую и последнюю ячейку памяти вектора, но что потом с ними делать - хз.

Где я ошибаюсь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2015, 02:30
Ответы с готовыми решениями:

Реализовать push_back для вектора
Друзья, помогите реализовать собственный push_back для этого класса. У меня получилось только для...

Передача вектора в функцию по указателю
Есть функция с таким прототипом: void Split(const string&amp; text, char delimeter, const...

[РЕШЕНО] EEPROM и Си доступ по указателю - возможно ли?
При написании очередного куска своей немалой программы закралась мысль об универсальной прошивке...

Не изменяется элемент вектора при работе с ним по указателю
Здравствуйте. Проблема следующая. Пишу свою велосипедную (на это, как на источник проблемы, не...

1
18 / 18 / 6
Регистрация: 02.07.2011
Сообщений: 67
15.07.2015, 03:05 2
2 варианта. Указатель передаёте на сам объект-контейнер.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <vector>
#include <iostream>
 
using namespace std;
 
int function(vector<int>* vec)
{
    vec->push_back(3);
    cout << (*vec)[0] << (*vec)[1] << endl;
 
return 0;
}
 
int main()
{
    vector <int> vec;
    vec.push_back(1);
 
    function(&vec);
 
return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <vector>
#include <iostream>
 
using namespace std;
 
int function(vector<int>& vec)
{
    vec.push_back(3);
    cout << vec[0] << vec[1] << endl;
 
return 0;
}
 
int main()
{
    vector <int> vec;
    vec.push_back(1);
 
    function(vec);
 
return 0;
}
1
15.07.2015, 03:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2015, 03:05
Помогаю со студенческими работами здесь

Если возможно, упорядочить булевы вектора, или вывести сообщение "Вектора несравнимы"
помогите пожалуйста с задачей: Даны булева вектора a и b длины n. Если возможно, упорядочить их,...

Найти выражение для: вектора скорости; вектора ускорения; модуля радиус-вектора
Товарищи, помогите пожалуйста решить. Радиус-вектор материальной точки задается выражением:...

Push_back
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;iterator&gt; #include &lt;algorithm&gt; using namespace...

Push_back(1.)
Доброго времени суток, уважаемые форумчане! Ковыряя чужой код, наткнулся на конструкцию: ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru