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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не видно определений функций при раздельной компиляции http://www.cyberforum.ru/cpp-beginners/thread1498999.html
Описал класс и его наследника в заголовочном файле; самые громоздкие определения функций вынес в отдельные файлы, однако при компиляции/сборке эти определения не видно из файла с "main". Здесь...
C++ Const-параметры в аргументах функции void setAmount(const int _amoutn) А тут уже const излишен, перебор. Добавлено через 3 минуты void setDescription(const std::string& _description) { m_description = _description; } //...... http://www.cyberforum.ru/cpp-beginners/thread1498988.html
C++ Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом и получается примерно одинаково. Что интересно, время на вызов функции do_nothing получилось примерно такое же....
C++ Fstream в классах
Проблема заключается в том, что я не могу использовать fsream в классе, ибо выдаёт ошибку. Код и текст ошибки ниже. Помогите пожалуйста (мб поможете и с самой задачей, условие ниже). Код весь в...
C++ Как работать с функцией SystemParametersInfo? http://www.cyberforum.ru/cpp-beginners/thread1498938.html
Чтобы установить обои рабочего стола. Пишу вот так: #include "stdafx.h" #include <Windows.h> int _tmain(int argc, _TCHAR* argv) { if (SystemParametersInfo ( SPI_SETDESKWALLPAPER,
C++ Ошибка при компилировании Вот такая ошибка "Unhandled exception at 0x1027d340 (msvcr100d.dll) in 546456.exe: 0xC0000005: Access violation writing location 0xfdfdfdfd." Что делать? подробнее

Показать сообщение отдельно
homk
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 1

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

15.07.2015, 02:30. Просмотров 338. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru