在刷leetcode的时候,遇到的问题:
在有些地方,使用的是vector&,而另一些地方使用的是vector。
一直没弄懂有一个&和没有&到底是什么区别。
在StackOverflow上找到了一个老哥给出的答案,原答案是这样写的:

老哥的意思就是说,当你使用vector的时候,函数获得的是数组的copy也就是复制,你可以在函数中对数组做任何的事情,并且你的原始数组的数据不会改变。
但是如果你使用vector&的时候,函数获得的就是对原始数据的引用,在函数中任何的修改,都会对原始数据产生影响。
这个问题让我明白了一件事:以后能用Google少用百度!
在编程过程中,理解C++中vector的引用和拷贝至关重要。使用vector时,函数接收到的是该容器的副本,不会影响原始数据。而传入vector&则意味着传递的是原始数据的引用,任何修改都会直接影响到原始数据。了解这一差异能避免不必要的错误并提高代码效率。
961

被折叠的 条评论
为什么被折叠?



