c++里面的2维向量是什么意思????

来源:百度知道 编辑:UC知道 时间:2024/05/14 05:16:01
我看到有段代码是在main函数直接写 vector<int> s;定义s向量时可以不声明它的元素个数吗?比如这样 vector<int> s(10)。

另外我看到定义函数时这样写
void swap(vector<int>& a,vector<int>& b)
{vector<int> temp=a;a=b;b=temp;} 这里的vector<int>& a是声明意思?&不是取址符吗?为什么定义时要加上&?

最后求2维向量的解释。。。

找本C++的书来看。

LZ犯了一个很明显的错误:把C++当C来看。其实二者差很多,要用全新的思维来学习。

void swap(vector<int>& a,vector<int>& b)
这个地方的&是引用声明。不是求地址。
表明传入的参数是按地址传递,而不是按值传递。

向量就是一个封装得很好的数组容器。
至于vector是什么,怎么用,找本介绍STL的书看看吧。

学C++至少要搞懂这些:
1、OOP
2、泛型编程
3、函数/操作符重载

(这也是其和C区别最大的地方,特别是前两项,几乎可以颠覆你在学C中打下的思想基础)

定义vector容器时当然可以不声明它的元素个数!

vector<int> & 表示这是一个引用,就像C语言中的指针变量差不多,也可以在swap()函数中改变传入的实参值。但是引用比指针更安全。

所以2维vector就像二维数组一样,事实上,你完全可以像理解二维数组那样理解2维vector.

可以不声明向量的个数,但只能用push_back()一个一个添加数据.
void swap(vector<int>& a,vector<int>& b) 的& 在这不是取地址 是C++里的一种传值方式(传引用) 当待传递的变量为复杂数据类型时它的效率比传值高,因为它不需调用构造函数.

2维向量 就像2维数组