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

Простой список в виде массива.Как работать с элементами списка-массива через единую функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Map STL - максимальный объем памяти http://www.cyberforum.ru/cpp-beginners/thread153424.html
Пишу модуль для программы - что-то вроде переводчика. Есть словарь синонимов (40+мб). Загружаю его в map, но после 740000+ ключа, мой словарь больше не растет. Пробовал тест: вместо своих ключей, просто записывал номер позиции (т.е. 1, 2...). Ради теста. Записало все. Видимо, есть какие-то ограничения в памяти... Но какие... Использовал multimap - все окей, все миллион+ слов записались...
C++ Полная форма разветвления Оплата работ зависит от типа работы: "а", "b", "c" и вычисляется по неким формулам записаным в коде. Для каждого типа работы есть процент налога 10%, 15%, 20% для "а", "b", "c" соотвецтвенно. Нужно ввести тип работы и вывести данные: тип работы, заработная плата, размер налога, и сумма к выдаче (с вычетом налога). Написал программу, компилирует, запускает, но почему-то, будь то при вводе... http://www.cyberforum.ru/cpp-beginners/thread153407.html
C++ Двумерный массив
помогите доделать программу. нужно сдавать через 2 дня Написать программу, интегрирующую случайный двумерный массив из 0 и 1 с помощью датчика случайных чисел RANDOM. Размер массива N*M и доля в нем нулей должна задаваться пользователем. Найти в созданном массиве максимальное количеством нулей примыкающих друг к другу по горизонтале и веритикале. часть я уже сделал вот код: #include <stdio.h>...
C++ Оператор delete[]
Код: #include <iostream> #include <cstdlib> #include <ctime> #define stop __asm nop int main() { int N,M; N=3;
C++ Имитация работы АЗС (ООП) http://www.cyberforum.ru/cpp-beginners/thread153396.html
Задача: написать программу, имитирующая работу АЗС в объектно ориентированном виде. У меня есть программа, написаная на delphi, но она не в ООП. Если надо могу её код написать.
C++ Двумерный Динамический массив Здравствуйте, такая проблема: не могу задать int** и char**...проблема в том что в функцию передются их размеры , но они не константы и компилятор пишет ошибку, и не очень понимаю как выделять память.. подробнее

Показать сообщение отдельно
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
14.07.2010, 04:12     Простой список в виде массива.Как работать с элементами списка-массива через единую функцию
Цитата Сообщение от USHЁL Посмотреть сообщение
...Visit(void (*pf)(Item &) ),которая принимает указатель на другую функцию в качестве аргумента. pf-указывает на функцию(не функцию-член)...
судя по листингу это как раз должен быть указатель на функцию-член.
visit(isfull(st)); - встретив такой вызов компилятор не догадается к каким объкетам применяются функции visit и isfull, можно например visit(st,isfull(st));, но тогда visit не нужна. можно еще немножко разьяснений сути проблемы? и интересно это все абстрактно для саморазвития или задание носит прикладной характер?
вот я тут что то сделал ради примера, надеюсь поможет.
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
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <string>
 
using namespace std;
 
class A{
    string str;
public:
    A(string s):str(s){}
    void print()
    {
        cout << str << '\n';
    }
};
class B{
    A a;
public:
    B(string s):a(s){}
    void mutate(A &mutant)
    {
        a=mutant;
    };
    void print()
    {
        a.print();
    }
    template <typename func> void visit(func f,A& object)
    {
        ((*this).*f)(object);
    }
    template <typename func> void visit(func f)
    {
        ((*this).*f)();
    }
};
int main()
{
    B b("str1");
    b.visit(&B::print);
    A a("test string");
    b.visit(&B::mutate,a);
    b.visit(&B::print);
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru