vector<>运用以及string类型
备考笔记
发布于2025年2月26日 00:03
阅读数 147
vector<string> strings;//vector 类似一个动态数组,可以通过strings[i]调用其值
strings.push_back(input);//这是vector的标准输入方式,可以防止溢出
sort(strings.begin(),strings.end(),cmp);//注意string类型具有特殊性,需要使用.begin()方法来实现首地址读取,即使其对应的数组类型也一样
登录后发布评论
使用auto自动我理解错了
for (const auto& it: mergeds) {
total += it.end - it.start + 1;
}
mergeds是迭代目标,it是迭代器。
对于vector我们有三种遍历方法。
1.使用auto自动
for (const auto& interval : merged) {
total += interval.end - interval.start + 1;
}//迭代器自动获取interval的类型,并计算地址偏移量。
//这里使用const &目的是指通过间接引用的方式访问元素,不修改其内容。
2.使用传统方法
这里是通过auto it作为迭代器来实现的,注意一点,it是指针类型,用->
3.使用size_t特殊的类型作为索引
for (size_t i = 0; i < merged.size(); ++i) {
total += merged[i].end - merged[i].start + 1;
}
对容器内部元素的修改
Intervel& last=mergeds.back();//通过.back()取出加上&直接引用实现
此时我们接下来对last的修改都会影响到mergeds中的最后一个元素。
typedef struct
{
int start;
int end;
}Intervel;
intervels.push_back({a,b});//加入元素
vector容器存储结构体变量方式
string s = strings.back() //获取输出最后一个元素
.size()//返回大小
.empty()//清空