Какой контейнер лучше всего подходит для хранения данных {произвольного задания} на C++?C++

Программы на C++. Форум разработчиков
Anonymous
Какой контейнер лучше всего подходит для хранения данных {произвольного задания} на C++?

Сообщение Anonymous »

Я пишу приложение, которое должно использовать поля jobject несколько раз с большой скоростью. Поскольку извлечение полей из заданий происходит довольно медленно, я хочу сделать это один раз, а затем читать и записывать поля какого-нибудь объекта C++ или элементов многотипного массива (если таковой может быть создан) или чего-то еще, что обеспечивает быстрый доступ к данным ( здесь и далее - целевой контейнер).
Мой код имеет две функции: первая записывает поля задания в целевой контейнер, вторая считывает из него записанные данные .
Целевой контейнер должен иметь возможность хранить переменные разных типов, и его размер не должен определяться во время компиляции (поэтому структура не подходит). Вопрос: какой контейнер лучше всего удовлетворяет этим условиям, если его качество определяется скоростью чтения (+преобразования типов в правильные) из него?
Сейчас я использую вектор, как показано ниже:

Код: Выделить всё

#include 
#include 
JNIEXPORT void JNICALL Java_runTask(JNIEnv*env,jclass,jobject o){
vectord;
readData(d,/*some other arguments*/,o);
do{
//do something useful
}while(predicate);
}

void readData(vector*data/*some other arguments*/,jobject o){
//fill the vector with jobject's fields' values
}

bool predicate(vector*data){
//determine the return value using vector contents
return true;
}
соответствует моим условиям, НО...
  • Я не уверен, что вектор — самый быстрый контейнер для чтения.
  • Код: Выделить всё

    any_cast()
    ПРОВЕРЯЕТ тип перед регистром, а это означает, что его производительность несовершенна.


Подробнее здесь: https://stackoverflow.com/questions/782 ... -data-in-c

Вернуться в «C++»