Как проверить, есть ли элемент в списке?

Это переносимый метод с использованием библиотеки хронологии C++11:

std::string time_in_HH_MM_SS_MMM()
{
    using namespace std::chrono;

    // get current time
    auto now = system_clock::now();

    // get number of milliseconds for the current second
    // (remainder after division into seconds)
    auto ms = duration_cast<milliseconds>(now.time_since_epoch()) % 1000;

    // convert to std::time_t in order to convert to std::tm (broken time)
    auto timer = system_clock::to_time_t(now);

    // convert to broken time
    std::tm bt = *std::localtime(&timer);

    std::ostringstream oss;

    oss << std::put_time(&bt, "%H:%M:%S"); // HH:MM:SS
    oss << '.' << std::setfill('0') << std::setw(3) << ms.count();

    return oss.str();
}
0
задан Foad 5 March 2019 в 08:22
поделиться

2 ответа

В списках Scilab есть гетерогенные контейнеры, и это препятствует тому, чтобы оператор равенства == имел то же поведение, что и для матриц. Однако списки объектов с однородными типами можно в некотором смысле превратить в векторы с помощью list2vec, что позволяет делать то, что вы хотите делать.

0
ответ дан Stéphane Mottelet 5 March 2019 в 08:22
поделиться

Вы хотите сделать такую ​​вещь?

--> x(1).name='john';x(2).age=19;x(2).flag=%t;

--> x(2).name='paul';x(2).age=18;x(3).flag=%f;

--> list2vec(x.name)
 ans  =

!john  !
!      !
!paul  !


--> list2vec(x.age)
 ans  =

   19.
   18.

--> list2vec(x.flag)
 ans  =

  T
  T
  F
0
ответ дан Stéphane Mottelet 5 March 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: