но как хранить билеты с вопросами, ответами, типами, картинками и прочее?
был вариант сделать отдельную базу с вопросами
"_id": 123 "Question": "Answer" "_id": 456 "Question 2": "Answer" "_id": 789 "Question 3": "Answer"
{
"_id": ...,
"problem": "Текст вопроса",
"answers: [
{ "id": 1, "text": "Вариант ответа 1"},
{ "id": 2, "text": "Вариант ответа 2"}
],
"correctAnswerId": 1
// какие-то ещё нужные поля
}
{
"_id": ...,
"exam": {/* Поля экзаменационного билета, чтобы зафиксировать их*/}
"answer: {/*Поля, связанные с ответом. Например координаты обведённой области на картинке или просто номер ответа*/}
}
[BsonExtraElements]
IDictionary<string, PupilsWithTickets> ExtraElements { get;set;}
public class Document
{
public ObjectId Id { get; init; }
[BsonElement("a")]
public PupilsWithTickets PupilsWithTickets {get;set;}
}
public class PupilsWithTickets
{
[BsonElement("pupils"]
public Dictionary<string, Pupil> Pupils {get;set;}
}
public class Pupil
{
[BsonElement("ticket")]
public string Ticket {get;set;}
}
Console.WriteLine(JsonSerializer.Serialize(poop));
From<std::io::Error>
не реализован для my::custom::Error
dyn io::Error
, а dyn std::error::Error
.
Удаление элемента с начала или конца и добавление нового элемента в начало, думаю, сам придумаешь
Это не самый эффективный алгоритм.
Повторюсь, что std::vector увеличивает размеры нелинейно, и отслеживает не только размер массива, но и количество занятых элементов в нём.
Если твоим заданием не является изобрести свой std::vector, то советую не изобретать его, а сразу использовать нормальный вариант.