当您需要在C++中传递对象的引用而不是拷贝时,您需要使用std::ref。std::ref是一个包装器,它允许您将对象的引用传递给线程、bind等函数。这在以下场景中非常有用:
以下是一个简单的示例,说明如何在C++中使用std::ref:
#include<iostream>
#include<thread>
#include<functional>
void print(const std::string& str) {
std::cout<< str<< std::endl;
}
int main() {
std::string message = "Hello, World!";
std::thread t(print, std::ref(message));
t.join();
return 0;
}
在这个例子中,我们使用std::ref将message对象的引用传递给线程函数print。这样,线程函数可以直接访问message对象,而不是拷贝整个对象。
总之,当您需要在C++中传递对象的引用而不是拷贝时,您需要使用std::ref。这在多线程编程、函数绑定和延迟执行等场景中非常有用。
领取专属 10元无门槛券
手把手带您无忧上云