Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
homk
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 1
#1

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

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

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

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

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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2015, 02:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Push_back вектора по указателю - возможно ли (C++):

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

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

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

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

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

Push_back - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;iterator&gt; #include &lt;algorithm&gt; using namespace std; int main() { ...

1
andreysv
17 / 17 / 4
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2015, 03:05
Привет! Вот еще темы с ответами:

Vector . push_back - C++
Доброго времени суток! Помогите пожалуйста поправить код!! #include &lt;vector&gt; #include &lt;iostream&gt; using namespace std; ...

push_back vs emplace_back - C++
собственно тема обсуждалась там, я сделал вывод, что надо использовать emplace_back теперь, вроде как эффективнее местами. Одно...

Push_back и стандарт С++ - C++
vector&lt;int&gt; vA; vA.push_back(s); В случае, если в vA нет свободного места, выделяется новое, старые данные перемещаются в новую...

Ошибки в push_back и pop_back - C++
Задали финальный проект на Linked List, но тему эту по сути не очень хорошо успела освоить. Знаю что есть несколько ошибок в push_back и...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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