漳州 网站建设公司,建设企业官方网站官网,最吉利旺财的公司名字,北京网站制作收费明细文章目录 什么是vectorvector与普通顺序表不同的点 vector的成员函数operatoroperator[]begin与end与iteratorsize()capacityresizeemptyreservepush_backpop_backinserteraseswapclear成员变量 总结 什么是vector vector#xff1a;是数据结构里面的顺序表#xff0c;开辟一… 文章目录 什么是vectorvector与普通顺序表不同的点 vector的成员函数operatoroperator[]begin与end与iteratorsize()capacityresizeemptyreservepush_backpop_backinserteraseswapclear成员变量 总结 什么是vector vector是数据结构里面的顺序表开辟一段连续的空间存储内容 vector与普通顺序表不同的点 1、因为是用c写的里面包含了模版可以是自定义类型不止内置类型。 2、自身提供了交换函数 3、c11中引入了auto 可以使用范围for遍历 ···· vector的成员函数 operator 赋值操作 因为只重载了一个版本 vector类型vector类型 如果其是其他类型会隐式类型转化 operator[] []:下标查找 #includevector.h
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);//arr.resize(2);arr.reserve(100);cout arr[1] endl;return 0;
}
begin与end与iterator iterator:迭代器vector中是用模版指针定义的 begin:指向第一个元素 end指向最后一个元素 使用方式: #include iostream
#include vectorint main ()
{std::vectorint myvector;for (int i1; i5; i) myvector.push_back(i);std::cout myvector contains:;for (std::vectorint::iterator it myvector.begin() ; it ! myvector.end(); it)std::cout *it;std::cout \n;return 0;
}size() size():计算有效长度为多少 使用方式: #includevector.h
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);cout arr.size() endl;return 0;
}
capacity capacity:查当前顺序表中的容量 #includevector.h
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);cout arr.capacity() endl;return 0;
}
resize resize:设置容量 如果resizesize()那么会缩容并且吧数据删掉 如果resize在size()和capacity()之间那么也是缩容,不删数据 如果resizecapacity()那么就是扩容 empty 检查顺序表中有没有内容 #include iostream
#include vectorint main ()
{std::vectorint myvector;int sum (0);for (int i1;i10;i) myvector.push_back(i);while (!myvector.empty()){sum myvector.back();myvector.pop_back();}std::cout total: sum \n;return 0;
}reserve reserve:扩容 push_back 尾插 #includevector.h
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);//arr.resize(2);arr.reserve(100);cout arr[1] endl;return 0;
}
pop_back 尾删 #includevector.h
#includeiostream
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.pop_back();arr.pop_back();arr.pop_back();arr.pop_back();//arr.resize(2);//arr.reserve(100);cout arr.size() endl;return 0;
}
insert 指定位置插入 可以插入一个也可以多个 因为他重载的是迭代器参数避免了定死了类型 所以要传的是迭代器 #includevector.h
#includeiostream
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.pop_back();arr.pop_back();arr.pop_back();arr.pop_back();arr.insert(arr.begin()2, 30);//arr.resize(2);//arr.reserve(100);cout arr.size() endl;return 0;
}
erase 删除指定位置的内容 重载的同样是迭代器 所以要传迭代器 #includevector.h
#includeiostream
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.pop_back();arr.pop_back();arr.pop_back();arr.pop_back();arr.insert(arr.begin()2, 30);arr.erase(arr.begin() 2);//arr.resize(2);//arr.reserve(100);cout arr.size() endl;return 0;
}
swap 交换跟vector类型的对象 交换所有东西 #includevector.h
#includeiostream
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;vectorint s;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.pop_back();arr.pop_back();arr.pop_back();arr.pop_back();arr.insert(arr.begin()2, 30);arr.erase(arr.begin() 2);//arr.resize(2);//arr.reserve(100);s.swap(arr);cout arr.size() endl;cout s.size() endl;return 0;
}clear 清除字符串内容 #includevector.h
#includeiostream
#includevector
using namespace std;int main()
{//dabai::test1();vectorint arr;vectorint s;arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.push_back(11);arr.pop_back();arr.insert(arr.begin()2, 30);arr.erase(arr.begin() 2);//arr.resize(2);//arr.reserve(100);s.swap(arr);cout arr.size() endl;cout s.size() endl;s.clear();cout s.size() endl;return 0;
}成员变量 都是迭代器我这个是自己写的 并不是官方的名字 iterator _str;//首个元素的地址iterator _size;//尾元素的地址iterator _capacity;//容量总结
跟普通的顺序表还是有区别的总体变的好用了很多。 dp最大的噩梦