Trong C ++ 17, làm thế nào để bạn khai báo và khởi tạo một vectơ các cặp (hoặc bộ dữ liệu) với một phần tử tùy chọn?
std::vector<std::pair<int, optional<bool> > > vec1 = { {1, true},
{2, false},
{3, nullptr}};
Tôi có một cặp trong đó phần tử thứ hai có thể là null / tùy chọn.
Điều này có trả lời câu hỏi của bạn không? Làm cách nào để gán "không có gì" cho std :: tùy chọn <T>?
—
Julien Lopez
@JulienLopez Đó là nói về sự phân công.
—
LF
@LF Đó là câu hỏi tương tự khi bạn loại bỏ bối cảnh không liên quan: làm thế nào để bạn tạo một tùy chọn trống?
—
Julien Lopez
@JulienLopez Trong C ++, việc khởi tạo và gán rất khác nhau nói chung. Chỉ vì hai câu hỏi xảy ra có các giải pháp chồng chéo không có nghĩa là chúng giống nhau. Đặc biệt, lưu ý rằng bạn không muốn sử dụng
—
LF
reset
ở đây.
std::piecewise_construct
cũng có thể cung cấp các lựa chọn thay thế thú vị.