Cách tốt nhất để chuyển đổi a thành là std::vector<int> intVec
gì std::vector<double> doubleVec
. Hay, tổng quát hơn, để chuyển đổi hai vectơ thuộc loại chuyển đổi?
Cách tốt nhất để chuyển đổi a thành là std::vector<int> intVec
gì std::vector<double> doubleVec
. Hay, tổng quát hơn, để chuyển đổi hai vectơ thuộc loại chuyển đổi?
Câu trả lời:
Sử dụng hàm tạo std::vector
phạm vi của:
std::vector<int> intVec;
std::vector<double> doubleVec(intVec.begin(), intVec.end());
copy(v_int.begin(), v_int.end(), back_inserter(v_float));
hoặcv_float.resize(v_int.size()); copy(v_int.begin(), v_int.end(), v_float.begin());
std::distance()
"Nếu đó là một trình lặp truy cập ngẫu nhiên, hàm sử dụng toán tử- để tính toán điều này. Nếu không, hàm sử dụng toán tử tăng (operator ++) lặp lại." Vì vậy, trong trường hợp này, số lượng phần tử có thể được tìm thấy bằng cách trừ đi các trình vòng lặp. Liệu thư viện chuẩn có được triển khai để sử dụng std :: distance cho dự trữ ban đầu () hay không là một câu hỏi khác, nhưng godbolt.org/z/6mcUFh ít nhất cũng chứa một lệnh gọi đến std :: distance ().
std::copy(...)
chức năng sau đó? Bạn có thể thêm điều đó vào câu trả lời?