做leetcode默认是写函数,当出现关于数组的题目时,一般来说C++传入类型是vector,C传入类型是int型数组或char型数组,同时也需要知道数组的长度,在此一并总结。 1.非字符串数组: sizeof(array) /sizeof(datatype) 注意如果用指针作为实参传入函数,sizeof(array)的值将出错,变为所指地址的值的长度 在C中可以用宏...
for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); printf("second: "); for (vector<int>::size_type ix1 = 0; ix1 != v1.size(); ix1 ++){ printf("%d\t", v1[ix1]); } printf("\n"); printf("third: ")...
//初始化一个一维长度为3的vectorvector<vector<int>> vec(3);//为每个一维vector初始化不同长度vec[0] = vector<int>(5); vec[1] = vector<int>(10); vec[2] = vector<int>(2);//打印vecfor(inti =0; i < vec.size(); ++i) {for(intj =0; j < vec[i].size(); ++j) { cout<<...
vector 是个容器 是复合类型 vector<char> 不会自动添加~ 是char 类型的容器 每个元素是一个个char字符 vecotr<string> 每个元素则会有\0 因为每个元素是string 类型的字符串 char str1[]="abcdefig";string str="abcdefig";const char str1*=str.c_str();是c风格的 字符串 char str1[...
(inti=1;i<arr.size();i++)arr[i][i]=1;}intmain(){intn=6;vector<vector<int>>arr;//编译无误,因为arr.size() == 0;arr[i][i]没有执行//编译有误,元素vector<int> 没有初始化,使用m[i][i]出错vector<vector<int>>arr(n);vector<vector<int>>arr(n,vector<int>(n));//编译无误...
size_t是全局定义的类型;size_type是STL类中定义的类型属性,用以保存任意string和vector类对象的长度 string::size_type 制类型一般就是unsigned int, 但是不同机器环境长度可能不同 win32 和win64上长度差别;size_type一般也是unsigned int 2. 为什么需要size_t——可移植性问题 ...
vector<vector<vector<int>>> cube(5, vector<vector<int>>(3, vector<int>(2, 0))); 画的很简陋,随便欣赏一下。 补充内容: 1.声明一个简单int容器 vector<int> v; 2.声明一个长度为5的容器 vector<int> v(5); 3.声明一个长度为5,所有元素初始值为0的容器 ...
鉴于以上原因,在C语言中,如果想用变长的数组,还是老老实实用malloc分配吧,在C++中当然有更好的选择,就是vector,当然C++11中又推出了一个array,而且这两种都是真正的变长,也就是数组的长度随时都可以改变。 下面我还想说一下C和C++中const关键字的区别。
这个vector本身只要满足这种线性的加法和乘法它就叫vector,它可以有长度、有方向,但是它不必须要有长度和有方向,这是重要的。这就是为什么我们,尤其是我当年学电动力学的时候看的那些点乘、叉乘乱七八糟的那一堆公式,老师也不懂,然后我们大家就跟着背,背了过两天又忘了,为什么?就是因为我们根本不知道标量和矢量是...