это должно сделать это:
NSMutableArray* myArray = ....;
int i;
for(i=0; i<[myArray count]; i++) {
id element = [myArray objectAtIndex:i];
if(element == ...) {
[myArray removeObjectAtIndex:i];
i--;
}
}
надежда это помогает...
Преобразование ptime в целое число довольно бессмысленно, так как ptime - это абстракция фактического времени. Время, основанное на целых числах, представляет собой представление этого времени как отсчет от эпохи. Что вы (вероятно) хотите сделать, так это сгенерировать time_duration от вашего времени до интересующей вас эпохи, а затем использовать time_duration :: ticks () для получения 64-битного целого числа. Возможно, вам придется масштабировать результат до желаемой точности:
ptime myEpoch(date(1970,Jan,1)); // Or whatever your epocj is.
time_duration myTimeFromEpoch = myTime - myEpoch;
boost::int64_t myTimeAsInt = myTimeFromEpoch.ticks();
из документов: http://www.boost.org/doc/libs/1_40_0/doc/html/date_time/posix_time.html
boost :: int64_t ticks () Вернуть необработанный счетчик типа продолжительности (даст непредсказуемые результаты, если вызов time_duration имеет значение special_value). time_duration td (0,0,0, 1000); td.ticks () // -> 1000
Это легко сделать с помощью хронографических классов C ++ 0x, которые основаны на упрощенной версии библиотеки времени / даты Boost, но при просмотре документации Boost я ничего не вижу особенно очевидно. Фактически, единственный способ сделать это, который я вижу, - это вызвать to_tm
, чтобы преобразовать его в стандартную структуру C struct tm
, а затем умножить поля вместе. Это неприятно, но должно сработать (хотя вы должны быть осторожны с дополнительными секундами и т.п.).