我知道 auto 意味着类型扣除。我从来没有见过它被用作auto&
而且我不明白:
这个短代码在做什么。
#include <iostream>
#include <vector>
#include <thread>
void PrintMe() {
std::cout << "Hello from thread: " << std::this_thread::get_id() << std::endl;
}
int main() {
std::vector<std::thread> threads;
for(unsigned int i = 0; i < 5; i++) {
threads.push_back(std::thread(PrintMe));
}
for(auto& thread : threads) {
thread.join();
}
return 0;
}
我猜这是某种合成糖,可以代替
for(std::vector<std::thread>::iterator it = threads.begin(); it != threads.end(); it++ ) {
(*it).join();
}
但我不明白这个语法是如何工作的,以及那个 & 符号在那里做什么。