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

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

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

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

29.09.2013, 23:32. Просмотров 364. Ответов 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);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 23:32     вектор функций
Посмотрите здесь:

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

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

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

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

можно ли в вектор добавить вектор? - C++
не сложить, а добавить? например, даны такие векторы: std::vector&lt;glm::vec2&gt; myVector; и vector&lt;вот тут какой тип делать?&gt;...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Вызов функций внутри других функций - C++
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; using namespace std; ...

Объявление функций внутри других функций - C++
Иногда вижу в некоторых исходниках на c объявление функций, внутри main. Например: main(){ double sum(int max_num); } ...

Матрицы. Получить вектор X, равный P-й строке матрицы, и вектор Y, равный Q-му столбцу матрицы - C++
1. Дана матрица A (3 х 5). Получить вектор X, равный P-й строке матрицы, и вектор Y, равный Q-му столбцу матрицы. P и Q запросить у...

Вектор - C++
Определить значение и порядковые номера двух крупнейших элементов введенного вектора


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
29.09.2013, 23:43     вектор функций #2
Цитата Сообщение от Artishok Посмотреть сообщение
компилятор ругается.
Так прочитайте, что компилятор пишет. Загляните в описание std::vector'а...
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
29.09.2013, 23:44     вектор функций #3
Цитата Сообщение от Artishok Посмотреть сообщение
компилятор ругается.
Может он ругается на неправильное использование метода insert !?
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;
 
}
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
29.09.2013, 23:49  [ТС]     вектор функций #5
Цитата Сообщение от castaway Посмотреть сообщение
Может он ругается на неправильное использование метода insert !?
да. я только что сообразил что нужно не insert а push_back использовать.
Yandex
Объявления
29.09.2013, 23:49     вектор функций
Ответ Создать тему
Опции темы

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