Tôi hoàn toàn hiểu câu hỏi này đã được yêu cầu rất nhiều, nhưng tôi yêu cầu một biến thể cụ thể và tìm kiếm của tôi đã bỏ cuộc, vì tôi chỉ tìm thấy các thuật toán gắn thêm một câu hỏi vectơ hiện tại sang một vector khác, nhưng không được trả về từ một hàm.C++ nối thêm một vector khác
tôi có chức năng này liệt kê tất cả các file trong một thư mục:
vector<string> scanDir(const string& dir)
có thể gọi chính nó trong nội bộ (đối với thư mục con).
Tôi cần ngắn cách thêm giá trị trả lại cho vectơ của người gọi. Tôi có một cái gì đó trong tâm trí của tôi như thế này (nhưng tất nhiên nó không tồn tại :():
vector<string> fileList;
//...
fileList.append(scanDir(subdirname));
Tôi lo sợ rằng lưu trữ các giá trị trả về và chèn nó trong filelist sẽ mang lại hiệu suất badness Những gì tôi có nghĩa là thế này. :
vector<string> temp(scanDir(subdirname));
copy(temp.begin(), temp.end(), back_inserter(fileList));
Cảm ơn
PS:!. tôi không ép buộc bản thân mình để sử dụng vector, bất kỳ container khác mà thực hiện tốt như nhau và có thể ngăn chặn các hoạt động tiềm năng bản sao lớn là tốt bởi tôi
liên quan: http: //stackoverflow.com/questions/2208293/what-is-the-most-efficient-way-to-append-one-stdvector-to-the-end-of-another – kennytm
Khi nói về hiệu suất, câu hỏi đầu tiên luôn là : bạn có đo? Sau đó, những điều tầm thường, là điều này đang được chạy trong một vòng lặp chặt chẽ, là hiệu suất ứng dụng của bạn quan trọng? Sao chép một vector so sánh với việc lấy danh sách các tệp từ hệ thống tệp? –