做leetcode默认是写函数,当出现关于数组的题目时,一般来说C++传入类型是vector,C传入类型是int型数组或char型数组,同时也需要知道数组的长度,在此一并总结。 1.非字符串数组: 注意如果用指针作为实参传入函数,sizeof(array)的值将出错,变为所指地址的值的长度 在C中
每一个单元初始化为0,因此,vector<int> v(n)也等同于vector<int> v(n, 0)。当然,如果想要初始化为其他值,也可以改为vector<int> v(n, val) vector<int> v(5); cout << v.size() << endl; for (int i = 0; i < v.size(); i++) { cout << v[i] << " "; } cout << endl;...
vector<int> v; 2.声明一个长度为5的容器 vector<int> v(5); 3.声明一个长度为5,所有元素初始值为0的容器 vector<int> v(5,0); 4.用已有的数组初始化容器,区间:[a,a 6) int a[6]={5,6,2,0,9,4}; vector<int > v(a,a 6); 5.用现有容器初始化一个容器 vector<int> v1(5,0); ...
for (vector<int>::size_type ix3 = 0; ix3 != v3.size(); ix3 ++){ printf("%d\t", v3[ix3]); } printf("\n"); return 0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
从上面我们可以发现, vector也可以通过[]下标索引器来访问其中的元素, 同std::string一样,要注意索引的大小要小于 vector.size(), 否则会在运行时出错,但是需要特别注意的是, 不能使用索引器添加元素, 下面的代码是错误的 std::vector vec //这种用法是错误的 ...
vector<int>::iterator it1 = ve1.begin();//获取初始指针 for (int i = 0; i < ve1.size(); i++) {//数组遍历 //printf("%d ", ve1[i]);//下标访问 //printf("%d ", *(ve1.begin()+i));//指针访问 } printf("\n"); for (vector...
for(inti=0;i<v.size();i++){ printf("%d",v[i]); } return0; } 输出结果为: 0 1 2 3 4 访问vector中的元素 可以使用下标运算符[]或者at()函数来访问vector中的元素。 #include<stdio.h> #include<vector.h> intmain(){ vector<int>v={1,2,3,4,5}; // 使用下标运算符访问元素 printf...
voidpr_str_vector(vector<string>vec) { for(auto&v:vec) { cout<<v<<" "; } cout<<endl; } intmain() { vector<int>a; vector<int>b(a); vector<int>c(10,23); vector<string>s1(10,"null"); vector<string>s2(10); vector<string>s3={10,"hi!"};// 重点关注 ...
3.vector<数据类型> 函数名1=函数名2. 把动态数组2复制给动态数组1。 4.vector<数据类型> 函数名1(函数名2.begin(),函数名2.end()). 把动态数组2复制给动态数组1。 5.vector<数据类型> 函数名(a,a+sizeof(a)/sizeof(数据类型)),把普通数组a复制给动态数组。