объекты класса в с ++ - PullRequest
0 голосов
/ 22 ноября 2010

Мне нужно написать программу, в которой main () будет читать файл (содержащий некоторые предопределенные инструкции) и создавать классы для каждой строки, а если объект класса уже создан, создать новый объект класса .. что-то вроде

main()
{
     read file;
     save to a vector;

     for(i < vectorsize; i++)
          if(vector[i]== "book")
                 if(book b was already created) 
                       book c; 
                 else book b;
}

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Вы можете использовать std :: map для хранения созданных книг. Карта - это хранилище ключей -> значений, в котором вы можете обратиться к содержимому с помощью собственного определенного ключа.

typedef std::map<std::string, Book> BookMap;
int main()
{
     read file;
     save to a vector;
     BookMap books;

     for(i < vectorsize; i++)
          if(vector[i]== "book")
                 BookMap::const_iterator alreadyCreatedBook(books.find(b.name));
                  // When there is no book in the map, the map returns it's end() element
                 if(books.end() != createdBook)
                       alreadyCreatedBook->second; 
                 else
                     books[b.name] = b;
}
1 голос
/ 22 ноября 2010

Вместо того, чтобы иметь vector, вы можете захотеть взглянуть на std :: map , где вы можете указать название книги как ключ, а фактическая книга - значение.Таким образом, вы можете легко найти нужную книгу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...