Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Немогу определиться с некоторыми вопросами


Автор: stat007 23.3.2009, 11:21
Здравствуйте, товарищи программисты!
Подскажите пожалуйста следующий вопрос: 
Объявил такую строчку кода:
Код

vector<Date> e;

Компилятор пишет ошибку, что Date не определён. Я думал, что он находится в директиве 
Код

#include<ctime>

 и/или
Код

#include<windows.h>

однако всё-равно выводит ту же ошибку!!! Подскажите в чём причина?

Автор: zim22 23.3.2009, 11:30
Код
//typedef struct _SYSTEMTIME {
//   WORD wYear;
//   WORD wMonth;
//   WORD wDayOfWeek;
//   WORD wDay;
//   WORD wHour;
//   WORD wMinute;
//   WORD wSecond;
//   WORD wMilliseconds;
//} SYSTEMTIME;

#include <Windows.h>
#include <stdio.h>

void main()
{
    SYSTEMTIME st;
    GetSystemTime(&st);
    printf("Year:%d\nMonth:%d\nDate:%d\nHour:%d\nMin:%d\nSecond:% d\n" ,st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
}


Автор: vinick 23.3.2009, 11:31
Откуда вобще взяли этот Date?

Автор: zim22 23.3.2009, 11:36
ещё можно использовать структуру tm.
Код

#include <cwchar>
int main(int argc, char* argv[])
{
    std::tm t;
    return 0;
}



Автор: stat007 23.3.2009, 11:40
Привиду полняй текст этой программы:
Код

#include<iostream>
#include<vector>
#include<algorithm>
#include<time.h>
#include<windows.h>
using namespace std;
int main()
{
    vector<Date> e;
    copy(istream_iterator<Date>(cin),  istream_iterator<Date>(), back_inserter(e));
    vector<Date>::iterator first = find(e.begin(), e.end(), "01/01/95");
    find(e.begin(), e.end(), "12/31/95");
    *last="12/30/95";
    copy(first, last, ostream_iterator<Date>(cout, "\n"));
    e.insert(--e.end(), TodaysDate());
    copy(first, last, ostream_iterator<Date>(cout, "\n"));
    return 0;
}


Автор: andrew_121 23.3.2009, 11:47
vinick, Походу парень кодит на Дельфи.

Автор: vinick 23.3.2009, 11:51
Цитата(andrew_121 @  23.3.2009,  11:47 Найти цитируемый пост)
Походу парень кодит на Дельфи. 

Да вроде код на плюсах привел.

Только ни гугл, ни msdn не в курсе кто такая функция TodaysDate().


stat007,  откуда вы вобще узнали о Date и TodaysDate() ?

Автор: andrew_121 23.3.2009, 11:54
Цитата

Да вроде код на плюсах привел.

Да. Но тип похож на Дельфиновский. Только без префикса T

Автор: stat007 23.3.2009, 12:05
vinick, этот код приведён в книге: Решение сложных задач на С++, автор: Герб Саттер. Это самая первая задача в этой книге!

Автор: zim22 23.3.2009, 12:16
stat007, без обид.
но мне кажется вам ещё рано читать эту книгу.

Автор: Lazin 23.3.2009, 12:18
Date это не стандартный класс, автор просто использовал его в качестве абстрактного примера, посему, топикстартеру еще рано читать Саттера smile 

Автор: p51x 23.3.2009, 12:18
Читайте "введение"... Там он пишет, что "все ппримеры кода - всего лишь отрывки программ... и не следует ожидать, что эти отрывки будут корректно компилироваться при отсутствии остальных частей пограммы".

Date - класс используемый им в качестве примера (возможно, реально написаный... см. в файлах книге и на сайте автора) 

Автор: vinick 23.3.2009, 12:19
Скорее всего Саттер просто выдумал этот класс, чтобы на его примере рассмотреть работу с итераторами.

Цитата(stat007 @  23.3.2009,  11:40 Найти цитируемый пост)
   
 vector<Date>::iterator first = find(e.begin(), e.end(), "01/01/95");
    find(e.begin(), e.end(), "12/31/95");


В скане который вы используете, обрезана верхняя строка листинга. Там должно быть еще объявление last.

Автор: andrew_121 23.3.2009, 12:39
Цитата(p51x @  23.3.2009,  12:18 Найти цитируемый пост)
см. в файлах книге и на сайте автора

А где сайт Автора?

Автор: zim22 23.3.2009, 12:55
Цитата(andrew_121 @  23.3.2009,  12:39 Найти цитируемый пост)
А где сайт Автора?

аж 3 штуки
Herb Sutter's homepage http://www.gotw.ca/
Guru of the Week http://www.gotw.ca/gotw/
Herb Sutter's blog http://herbsutter.wordpress.com/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)