Tôi muốn điền vector<int>
bằng cách sử dụng std::fill
, nhưng thay vì một giá trị, vectơ phải chứa các số theo thứ tự tăng dần sau.
Tôi đã cố gắng đạt được điều này bằng cách lặp lại từng tham số thứ ba của hàm, nhưng điều này sẽ chỉ cung cấp cho tôi một trong hai vectơ được lấp đầy bởi 1 hoặc 2 (tùy thuộc vào vị trí của ++
toán tử).
Thí dụ:
vector<int> ivec;
int i = 0;
std::fill(ivec.begin(), ivec.end(), i++); // elements are set to 1
std::fill(ivec.begin(), ivec.end(), ++i); // elements are set to 2
std::iota
thay vìstd::fill
(giả sử trình biên dịch của bạn đủ mới để hỗ trợ nó).