Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как реализовать категорию для элементов коллекции?

88K
02 июня 2015 года
vitaliy matitskiy
2 / / 02.06.2015
Доброго дня, уважаемые гуру разработки
пытаюсь написать простую программку для ведения списка дел. запутался на моменте как лучше смоделировать в программе понятие категории для каждой из задач. в такс-менеджерах которые пробовал пользовать обычно каждой задаче можно присвоить больше одной категории.
пока думал о варианте записать категорию через перечисление (enum). но enum вроде может хранить только целочисленные значения, а не строки
буду благодарен за Ваши подсказки о том, как это можно сделать
446
02 июня 2015 года
Meander
487 / / 04.09.2011
Если я правильно понял задачу, то можно через классы и прочие динамические типы данных:
Код:
#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>

class Task {
  private:
    std::string               task_name;
    std::vector <std::string> category;
  public:
    Task(std::string);
    void addCategory(std::string);
    void printAllCategory(void);
};

Task::Task(std::string name){
  task_name = name;
}

void Task::addCategory(std::string name){
  category.push_back(name);
}

void Task::printAllCategory(void){
  std::cout << "Task Name : " << task_name << std::endl;
  for(unsigned i=0;i<category.size();i++)
    std::cout << "Category[" << i+1 << "] : " << category[i] << std::endl;
}

int main(int argc, char** argv) {

  Task *task1 = new Task("Work"), *task2 = new Task("Home");
  task1->addCategory("money");
  task1->addCategory("job");
  task1->addCategory("shirk");
  task2->addCategory("beer");
  task2->addCategory("sex");
  task1->printAllCategory();
  task2->printAllCategory();
  delete task2;
  delete task1;
 
  system("pause");
    return 0;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог