В рамках анализа времени выполнения у меня есть небольшая игра, в которой после вычисления каждого кадра помещается новый элемент в этот список:
typedef std::list<std::pair<float, float>> PairList;
PairList Frames; //in pair: index 0 = elapsed time, index 1 = frames
Файл txt позже используется для рисования графика. Я решил использовать список, потому что во время игры мне не нужно обрабатывать данные, содержащиеся в списке, и я считаю, что списки являются самыми быстрыми контейнерами, когда речь идет только о добавлении или удалении элементов. В качестве следующего шага я хочу записать кадры во внешний текстовый файл.
void WriteStats(PairList &pairList)
{
// open a file in write mode.
std::ofstream outfile;
outfile.open("afile.dat");
PairList::iterator itBegin = pairList.begin();
PairList::iterator itEnd = pairList.end();
for (auto it = itBegin; it != itEnd; ++it)
{
outfile << *it.first << "\t" << *it.second;
}
outfile.close();
}
С обычными списками указатель на "оно" должен возвращать элемент правильно? За исключением Visual Studio говорит, что pair<float, float>*
не имеет члена с именем first Как я хочу сделать это тогда, когда доступ через мой итератор не работает? Это потому что я передаю ссылку на список?