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

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

Войти
Регистрация
Восстановить пароль
 
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
#1

вектор функций - C++

29.09.2013, 23:32. Просмотров 431. Ответов 4
Метки нет (Все метки)

Как правильно добавлять функции в вектор и вызывать их?
Вот допустим есть вектор
C++
1
std::vector<void (*)(int, int)> vector;
Он должен хранить в себе указатели на функции. Вот некоторые функции
C++
1
2
3
4
5
6
7
8
9
10
11
void function1(int x, int y) {
    std::cout<<"Function 1: "<<x<<" - "<<y<<std::endl;
}
 
void function2(int x, int y) {
    std::cout<<"Function 2: "<<x<<" - "<<y<<std::endl;
}
 
void function3(int x, int y) {
    std::cout<<"Function 3: "<<x<<" - "<<y<<std::endl;
}
Но когда я пытаюсь их добавить в вектор
C++
1
2
3
vector.insert(function1);
vector.insert(function2);
vector.insert(function3);
компилятор ругается.

Как правильно их добавить туда?
И вызвать их получается можно так?
C++
1
vector.at(0)(1,3);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 23:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вектор функций (C++):

Умножение матрицы на вектор с использованием функций - C++
Помогите разобраться с функциями, что-то читая справочники не особо понятно... Собственно никакой код) Как передавать значения массивов...

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов - C++
Привет! Задача следующая. Нужно реализовать класс &quot;вектор&quot; с конструкторами, которые позволяют создать нулевой вектор и вектор с...

Перегрузка функций "ввести в поток", "вывести с потока", "умножить вектор на число" - C++
Подскажите пожалуйста, как убрать ошибки с этой программы? (делала перегрузку &quot;ввести в поток&quot; и &quot;вывести с потока&quot;, а также &quot;умножить...

Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы - C++
Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы. Безопасный вектор определяет переменные нижний и верхний...

Почему матрица на вектор умножается быстрее чем вектор на матрицу? - C++
Почему матрица на вектор умножается быстрее чем вектор на матрицу?

матрица на вектор, вроде правильно, а вектор на матрицу? посмотрите пожалуйста? - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int main() { ...

4
Fyret
186 / 172 / 13
Регистрация: 30.07.2013
Сообщений: 359
29.09.2013, 23:43 #2
Цитата Сообщение от Artishok Посмотреть сообщение
компилятор ругается.
Так прочитайте, что компилятор пишет. Загляните в описание std::vector'а...
1
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
29.09.2013, 23:44 #3
Цитата Сообщение от Artishok Посмотреть сообщение
компилятор ругается.
Может он ругается на неправильное использование метода insert !?
1
Paltus
3 / 3 / 0
Регистрация: 18.09.2013
Сообщений: 31
29.09.2013, 23:45 #4
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
#include <iostream>
#include <vector>
using namespace std;
 
void function1(int x, int y) {
    std::cout<<"Function 1: "<<x<<" - "<<y<<std::endl;
}
 
void function2(int x, int y) {
    std::cout<<"Function 2: "<<x<<" - "<<y<<std::endl;
}
 
void function3(int x, int y) {
    std::cout<<"Function 3: "<<x<<" - "<<y<<std::endl;
}
 
int main()
{   
    
    
    
    vector<void (*)(int, int)> vect;
 
    vect.push_back(&function1);
    vect.push_back(&function2);
    vect.push_back(&function3);
 
    vect.front()(1, 2);
 
    system("pause");
 
 
    return 0;
 
}
1
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
29.09.2013, 23:49  [ТС] #5
Цитата Сообщение от castaway Посмотреть сообщение
Может он ругается на неправильное использование метода insert !?
да. я только что сообразил что нужно не insert а push_back использовать.
0
29.09.2013, 23:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2013, 23:49
Привет! Вот еще темы с ответами:

Есть квадратная матрица А порядка n и вектор b с n элементами. Получить вектор Аb. - C++
Привет. Не могу разобратся, вот задание: Есть квадратная матрица А порядка n и вектор b с n элементами. Получить вектор Аb.

Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы - C++
Помогите не знаю как сделать! Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы. Безопасный...

Вектор с неизвестным количеством чисел преобразовать в другой вектор, где числа будут стоять по возрастанию - C++
Вектор с неизвестным количеством чисел нужно превратить в другой вектор, где числа будут стоять по возрастанию. Мне код не столько нужен,...

Считать вектор из файла, записать вектор в файл - C++
Доброго времени суток. Программа должна считывать числа из заданного файла, потом записывать в другой файл вектор, в котором каждый элемент...


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

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

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