vector类笔记

vector是序列式容器,可变长数组

std::vector</*当前容器类型可以是任何类型,不能是引用和const*/>
//std::vector<int> demo;
//std::vector<std::string> demo;
//std::vector<Demo> demo;

构造

std::vector<int> first;                                // 空
  std::vector<int> second (4,100);                       // 4 个 100
  std::vector<int> third (second.begin(),second.end());  // second 从 begin 到 end
  std::vector<int> fourth (third);                       // 复制 third
vector<std::string> strings(10,"abc");//10个"abc"
strings.push_back("在vector尾部增加");
strings.pop_back();//弹出尾部元素
strings.back();//获取最后一个元素
strings.assign(10,"abc");//赋值,会替换整个容器,返回void,类对象的访问

strings = otherstrings;//整个容器替换

迭代器,指向的是容器当中位置
位置指针对象

vector<std::string> strings(10 , "66666");
vector<std::string>::iterator it = strings.begin();//取出迭代器
for(auto it=string.begin();it!=strings.end()/*end指向最后一个元素的下一个空间*/;++it)
{std::cout<<*it<<std::endl;//返回const}
std::cout<<it->c_str()<<std::endl;
//vector<std::string>::iterator可写为 auto it,自动推倒
//begin 和 end 是半开区间  [  ),end-1是有效值
//rbegin rend 颠倒的 vector<std::string>::reverse_iterator it=strings.rebgin();
strings.size();//
strings.resize();
strings.insert(strings.begin()+1"2");//插入,传入iterator参数
strings.insert(strings.begin()+1,10,"2");//连续插入10个2
strings.insert(strings.begin(),otherings.begin()+1,otherings.begin()+3);//把otherstrings的begin+1begin+3
strings.clear();//删除
strings.erase(strings.begin());//擦除,传入区间,返回新的迭代器
strings.erase(strings.begin(),strings.begin()+10);
auto tt=strings.begin();
tt=strings.erase(tt);//vector已经发生了改变,内部迭代器也会改变,要更新(tt)迭代器,插入时也会更新

swap 交换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值