Мой код имеет две функции: первая записывает поля задания в целевой контейнер, вторая считывает из него записанные данные .
Целевой контейнер должен иметь возможность хранить переменные разных типов, и его размер не должен определяться во время компиляции (поэтому структура не подходит). Вопрос: какой контейнер лучше всего удовлетворяет этим условиям, если его качество определяется скоростью чтения (+преобразования типов в правильные) из него?
Сейчас я использую вектор, как показано ниже:
Код: Выделить всё
#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;
}
Код: Выделить всё
vector- Я не уверен, что вектор — самый быстрый контейнер для чтения.
- ПРОВЕРЯЕТ тип перед регистром, а это означает, что его производительность несовершенна.
Код: Выделить всё
any_cast()
Подробнее здесь: https://stackoverflow.com/questions/782 ... -data-in-c
Мобильная версия