C++ 什么'&';代表“中的”;标准::向量<;字节>&;溪流&引用;
我知道C++ 什么'&';代表“中的”;标准::向量<;字节>&;溪流&引用;,c++,syntax,stl,C++,Syntax,Stl,我知道 void foo(vector<int>& v) { ... } voidfoo(vector&v){…} 是通过引用传递向量,但是 std::vector<byte>& stream; std::向量和流; 流变量定义是什么?为什么会有“&”?这是对std::vector的引用。因为它是一个参考,所以允许您更改原始的向量,如本例所示: #include <iostream> #include <vector> c
void foo(vector<int>& v) { ... }
voidfoo(vector&v){…}
是通过引用传递向量,但是
std::vector<byte>& stream;
std::向量和流;
流变量定义是什么?为什么会有“&”?这是对
std::vector
的引用。因为它是一个参考,所以允许您更改原始的向量
,如本例所示:
#include <iostream>
#include <vector>
class Incrementer {
public:
Incrementer(std::vector<int>& v) : vec(v) {}
void increment() {
for (auto& i : vec)
++i;
}
private:
std::vector<int>& vec;
};
int main() {
std::vector<int> numbers { 1, 2, 3, 4 };
Incrementer inc(numbers);
for (auto i : numbers)
std::cout << i << ' ';
std::cout << '\n';
inc.increment();
for (auto i : numbers)
std::cout << i << ' ';
std::cout << '\n';
}
正如其他人所说,这两个都是参考文献。但是,第二个变量无效,因为没有引用的变量! 应该这样写:
#include <vector>
#include <iostream>
int main()
{
std::vector<int> stream1(5);
stream1[0] = 10;
std::vector<int>& stream2 = stream1; // stream2 and stream1 are two names for the same variable
stream1[0] += 55;
cout << "stream1: " << stream1[0] << endl;
cout << "stream2: " << stream2[0];
return 0;
}
#包括
#包括
int main()
{
std::矢量流1(5);
stream1[0]=10;
std::vector&stream2=stream1;//stream2和stream1是同一变量的两个名称
stream1[0]+=55;
难道这是一样的..它本身不应该是有效的。它是一个未初始化的引用。@Tomothy32它是一个成员变量的有效定义。@RobtheBlock,是的,它是类的成员,但为什么不只使用“std::vector stream;”?有什么原因吗?
#include <vector>
#include <iostream>
int main()
{
std::vector<int> stream1(5);
stream1[0] = 10;
std::vector<int>& stream2 = stream1; // stream2 and stream1 are two names for the same variable
stream1[0] += 55;
cout << "stream1: " << stream1[0] << endl;
cout << "stream2: " << stream2[0];
return 0;
}