《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
- 通过迭代器(iterator)
vector::iterator it;
it就相当于是vector<typename>::iterator
类型的变量。
可以用过*it
的方式来访问元素
begin()
和 end()
begin()获取vector元素的首地址,
end()获取末尾元素的下一个地址(遵循左闭右开的原则)
for(int i=0;i<5;i++){
vec.push_back(i);
}
vector::iterator it = vec.begin();
for(int i=0;i<5;i++){
printf(“%d\n”,*(it+i));
}
由此可见,vec[i]
与*(vec.begin()+i)
的等价的。
注意:在STL容器里只有vector
和string
支持v.begin()+整数
的写法,因为其他容器的存储结构并不是线性的。
- 迭代器与
++
和!=
运算符
注意不能写成it<vec.end()
只能写成不等于。
for(vector::iterator it=vec.begin();it!=vec.end();it++){
printf(“%d\n”,*it);
}
- (1)
push_back()
作用:在vector尾部添加一个元素,时间复杂度O(1);
- (2)
pop_back()
作用:删除vector尾部的一个元素,时间复杂度O(1);
-
(3)
size()
,获取vector中元素的个数,时间复杂度O(1),不过注意返回的是unsigne int
类型。 -
(4)
clear()
,清空所有元素,时间复杂度O(N)。 -
(5)
insert(it,x)
,向vector任意迭代器的位置,插入一个元素,时间复杂度O(N)。注意第一个参数是迭代器,而不是整数。
说明,被插入的地方的元素以及它后面的所有元素(如果有)顺次向后移动一位。
insert(vec.begin(),x) //在首部插入元素x;
insert(vec.end(),x) //在尾部添加元素x,相当于 push_back(x);
-
(6)
erase()
-
(i)
erase(it)
删除迭代器it处的元素。
for(int i=0;i<5;i++){
vec.push_back(i+1);
}
vec.erase(vec.begin()+3); //,下标为3,删除的是第4个元素
for(int i=0;i<vec.size();i++){
cout<<vec[i]<<endl;
}
1
2
3
5
- (ii)
erase(begin,last)
的所有元素。
删除迭代器**[begin,last)**处的元素。注意左闭右开。
erase(vec.begin(),vec.end()) //删除*(vec.begin)……*(vec.end()-1);
// 也就是删除所有的元素。
========================================================================
头文件
#include //string.h是C语言中的。
string str = “abcd”;
str = “defg”;
- (i)通过下标
通过下标访问就像是字符数组一样。
string s = “abc”
cout<<s[0]<<endl; // ‘a’
char c = s[0];
输入输出用cin 、cout
。
如果想用printf()
呢,可以用c_str()将string
转换为字符数组。
string s = “abc”;
printf(“%s\n”,s.c_str());
- 通过迭代器
当然真正要用,是没有必要这样做的。
总结
总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。
如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
唯一手段。
如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
[外链图片转存中…(img-YVbPkivI-1714412259238)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!