powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / void** преобразовать в vector <int>
6 сообщений из 6, страница 1 из 1
void** преобразовать в vector <int>
    #38116514
xmarat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В функцию передаю переменную типа vector <int>. Функция выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
void f(void ** arg)
{
	//...
	*(vector * <int>)arg[0]->push_back(1);
	//...
}



Однако, такое преобразование из void** в vector <int> не работает. Как преобразовать правильно? Заранее благодарен...
...
Рейтинг: 0 / 0
void** преобразовать в vector <int>
    #38116647
xmarat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил задачу с помощью struct:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
typedef struct my_struct {
	//...
	vector <int> * my_vector;
	//...
}my_struct_t;

void f(void ** arg)
{
	//...
	my_struct_t *loc = (my_struct_t *)arg;
	loc->my_vector->push_back(1);
	//...
}

vector <int> vector_to chage;
my_struct_t to_f;
to_f.my_vector = &vector_to chage;
f((void *)to_f);



Возможно есть способ проще, но т.к. я передаю функции много параметров разного типа, пришел к этому решению.
...
Рейтинг: 0 / 0
void** преобразовать в vector <int>
    #38116673
template class T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xmaratВозможно есть способ проще, но т.к. я передаю функции много параметров разного типа, пришел к этому решению.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
template<class T>
void f(T arg)
{
 arg->push_back(1);
}

std::vector<int> vec;
f(vec);
...
Рейтинг: 0 / 0
void** преобразовать в vector <int>
    #38117699
manking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xmaratВ функцию передаю переменную типа vector <int>. Функция выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
void f(void ** arg)
{
	//...
	*(vector * <int>)arg[0]->push_back(1);
	//...
}



Однако, такое преобразование из void** в vector <int> не работает. Как преобразовать правильно? Заранее благодарен...


Обязательно делать void**?
Это само по себе бессмысленно.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
void f(void * arg)
{
	//...
	((std::vector <int>*)arg)->push_back(1);
	//...
}


// main
std::vector <int> vector_to_chage;
f(&vector_to_chage);
std::cout << "\nразмер=" << vector_to_chage.size();
...
Рейтинг: 0 / 0
void** преобразовать в vector <int>
    #38118870
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xmaratВ функцию передаю переменную типа vector <int>. Функция выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
void f(void ** arg)
{
	//...
	*(vector * <int>)arg[0]->push_back(1);
	//...
}



Однако, такое преобразование из void** в vector <int> не работает. Как преобразовать правильно? Заранее благодарен...

Никак, это несопоставимые типы данных.
...
Рейтинг: 0 / 0
void** преобразовать в vector <int>
    #38118871
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xmaratВ функцию передаю переменную типа vector <int>. Функция выглядит так:
void f(void ** arg)
Как преобразовать правильно? Заранее благодарен...

А что тебе надо-то, хороняка ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / void** преобразовать в vector <int>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]