-1 / 1 / 0
Регистрация: 24.12.2018
Сообщений: 124
1

Как создать вектор функторов

24.09.2020, 12:47. Показов 1388. Ответов 1

Author24 — интернет-сервис помощи студентам
Хочу создать вектор указателей на функторы в классе.
Как это правильно сделать?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class MyClass
{
    struct MyClassParameters
    {
        unsigned int ddddddd;
        unsigned int rrrrrrr;
        unsigned int zzzzzzz;
 
    } MyClass_Sett;
 
 
    // Create functor
    struct GetData
    {
        int operator()(CShortVec& input1, CDoubleArr& output1, MyClass & obj) 
        {
            if ( obj.MyClass_Sett.ddddddd < 0) return 0;     
        }
    };
    std::vector<GetData*> copyData;  // Объявляем вектор указателей на функторы
}
Потом в конструкторе инициализирую вектор указателей на функторы:
C++
1
2
3
4
5
MyClass::MyClass()
{
    copyData.resize(10);
    for (unsigned int i = 0; i < copyData.size(); i++) copyData.emplace_back(new GetData);
}
При этом никаких сообщений не появляется, но программа из цикла не выходит.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2020, 12:47
Ответы с готовыми решениями:

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

Перегрузка функторов в STL
Просто любопытно, заметил такую вещь: есть скажем перегруженая функция show(int &amp;a) и show(string&amp;...

Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы
Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы. Безопасный...

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

1
27 / 21 / 9
Регистрация: 26.01.2013
Сообщений: 168
24.09.2020, 12:55 2
Лучший ответ Сообщение было отмечено prokino как решение

Решение

emplace_back вставляет еще элементы после 10го, который был выделен заранее. Поэтому и получается что i никогда не дойдет до copyData.size()
Переделать либо так
C++
1
2
3
4
MyClass::MyClass()
{
    for (unsigned int i = 0; i < copyData.size(); i++) copyData.emplace_back(new GetData);
}
Либо так
C++
1
2
3
4
5
MyClass::MyClass()
{
    copyData.resize(10);
    for (unsigned int i = 0; i < copyData.size(); i++) copyData[i] = new GetData;
}
0
24.09.2020, 12:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2020, 12:55
Помогаю со студенческими работами здесь

Как создать вектор из матриц?
Как с помощью контейнера vector создать вектор из матриц, которые являются двумерными динамическими...

Как создать двухмерный вектор
если в с++ vector является заменой массива в си, то как создать двухмерный вектор? например нужно...

Как создать вектор из векторов и как потом к нему обращаться?
Банальный вопрос - как создать вектор из векторов и как потом к нему обращаться? вот vector&lt;int&gt;...

Как создать двумерный массив c++ вектор?
как создать двумерный массив c++ из векторов??? И можно пример реализации Добавлено через 20...

Создать шаблонную матрицу как вектор векторов
Здравствуйте! Пишу программу по матрицам. При чем матрица создается здесь как вектор векторов. Не...

Как создать двумерный вектор и сразу заполнить его?
Как создать двумерный вектор и сразу заполнить его? int main() { char arr = { ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru