避免 C++ vector 的复制可以使用以下几种方法:
void processVector(const std::vector& vec) {
// 处理 vec 的代码
}
int main() {
std::vector myVector = {1, 2, 3, 4, 5};
processVector(myVector);
return 0;
}
std::vector createVector() {
std::vector vec = {1, 2, 3, 4, 5};
return vec;
}
int main() {
std::vector myVector = createVector(); // 使用移动语义
return 0;
}
void processVector(std::vector* vecPtr) {
// 处理 *vecPtr 的代码
}
int main() {
std::vector myVector = {1, 2, 3, 4, 5};
processVector(&myVector); // 传递指针
return 0;
}
需要注意的是,在使用指针传递 vector 的引用时要确保指针不为空,并且需要手动管理内存的释放。