当前位置: 首页 > news >正文

龙岗公司网站建设个人备案可以做影视网站吗

龙岗公司网站建设,个人备案可以做影视网站吗,全球速卖通买家版,北京到安阳火车票查询一、概念和特性 1、vector#xff1a;可变大小数组的序列容器——动态数组。 2、vector像数组一样使用连续的空间储存元素#xff0c;也可以通过下标访问元素。和数组不同的是#xff0c;当vector容器中空间不足#xff0c;vector会自动增大储存空间。 3、vector自增空间…一、概念和特性 1、vector可变大小数组的序列容器——动态数组。 2、vector像数组一样使用连续的空间储存元素也可以通过下标访问元素。和数组不同的是当vector容器中空间不足vector会自动增大储存空间。 3、vector自增空间的原理是先申请一块更大的储存空间再将原空间中的数据拷贝到新空间释放原空间。 4、当vector自增时因为储存空间的地址已经改变所以原来的迭代器也失效需要重新获取。 5、vector不会在插入每个元素时进行自增重新申请采用对数增长的空间大小以至于使用尾插法添加元素时为常数时间的复杂度。 6、vector使用尾插法和尾删法增删元素但其他元素的插入删除时间复杂度较其他序列容器更大大。 7、vector容器中有三个原始迭代器start——指向储存空间的起始位置也就是第一个元素finish——指向已使用空间的末尾位置end_of_storage——指向已分配储存空间的末尾位置。使用过程中申请的迭代器都是通过这三个原始迭代器获得的。 二、构造函数 vector构造函数有四种。 vectorT v;        //默认构造函数定义一个储存T类型元素的向量v vectorT v(n);      //定义一个储存了n个T类型元素的向量v默认值为0 vectorT v(n,value);//定义一个储存了n个T类型元素的向量v并将所有元素初始化为value vectorT v(v1.begin(),v1.end());        //定义一个能够储存T类型元素的向量将v1中begin()和end()区间内的元素拷贝到v中。 vectorT v(v1);     //拷贝构造函数定义一个容器v将v1中元素拷贝到v中。 #includeiostream using namespace std; #includevector #includealgorithmvoid myprint(const int value) {cout value ; }void test() {/*构造函数1默认构造函数*/vectorint v1;//尾插法存储数据for (int i 0; i 10; i2) {v1.push_back(i 1);}//利用vector容器的数组特性遍历数据for (int i 0; i (int)v1.size(); i) {cout v1[i] ;}cout endl;/*构造函数2能够储存10个T类型元素元素默认值为0*/vectorint v2(10);//利用迭代器给元素赋值int value 2;for (vectorint::iterator it v2.begin(); it ! v2.end(); it) {*it (value 2);}for (int i 0; i (int)v2.size(); i) {cout v2[i] ;}cout endl;/*构造函数3能够储存10个T类型元素并全部初始化成5*/vectorint v3(10,5);//利用迭代器遍历数据for (vectorint::iterator it v3.begin(); it ! v3.end(); it) {cout *it ;}cout endl;/*构造函数4申请一个容器v4将v3中从begin开到end闭之间的数据拷贝到v4*/vectorint v4(v3.begin(), v3.end());//利用STL封装好的算法遍历数据,该函数返回回调函数的返回类型for_each(v4.begin(), v4.end(),myprint); } int main() {test();return 0; } 三、增加函数 void vectorT::push_back(const T value);        //向量尾部添加一个元素 terator vectorT::insert(iterator it,const T value); //向量中迭代器it指向位置的前面插入数据value iterator vectorT::insert(iterator it,int cnt,const T value);  //向量中迭代器it指向位置的前面插入n个value iterator vectorT::insert(iterator it,iterator first,iterator last);//向量中插入同类型容器的一段数据前闭后开  insert函数返回指向原来位置的迭代器原迭代器失效。 四、删除函数 iterator vectorT::erase(iterator it);        //删除迭代器it指向的元素返回指向该位置的新迭代器 iterator vectorT::erase(iterator first,iterator lase);  //删除迭代器[first,last)之间的数据前闭后开 void vectorT::pop_back();                   //删除向量尾部一个数据 void vectorT::clear();                           //清空向量 五、遍历函数 T vectorT::at(int index);                //返回下标index位置的数据的引用 T [int index];                   //向量的数组特性[]运算符配合下标访问数据返回该位置元素的引用 T vectorT::front();                        //返回向量第一个元素的引用 T vectorT::back();                        //返回向量最后一个元素的引用 iterator vectorT::begin();                //返回指向第一个元素的迭代器 iterator vectorT::end();                   //返回指向最后一个元素后面位置的迭代器 reverse_iterator vectorT::rbegin(); //反向迭代器指向最后一个元素 reverse_iterator vectorT::rend();    //反向迭代器指向第一个元素前面一个位置 六、容量函数 bool vectorT::empty() const;          //判断向量是否为空 int vectorT::size() const;                //取向量中元素个数 int vectorT::capacity() const;         //取当前向量的总容量 int vectorT::max_size() const;       //取该向量允许的最大容量 void vectorT::reserve(size_t newsize)//预留空间函数当newsize小于原来向量容量无效。 七、其他函数 void vectorT::assign(int n,const T value);        //将n个value赋值给向量 void vectorT::assign(iterator firstiterator last);//将[fist,last)之间的元素赋值给向量 void vectorT::assign(initializer_listT _list);     //将列表list中的数据赋值给向量   void vectorT::swap(vectorT);                       //交换两个向量所有内容 八、基本用法 1、vector容器不仅能够储存内置数据类型int、double、char等还能存储类对象或者结构体。 class Person { public:Person(string name, int age) :m_Name(name), m_Age(age) {}string m_Name;int m_Age; }; typedef struct rect {int m_id;int m_length;int m_width;struct rect(int id, int length, int width) :m_id(id), m_length(length), m_width(width) {} }Rect; void test() {vectorPerson v;v.push_back(Person(张三, 20));vectorRect v1;v1.push_back(Rect(1, 10, 5));cout v[0].m_Name v[0].m_Age endl;cout v1[0].m_id v1[0].m_length v1[0].m_width endl; } 2、vector可以储存任意数据类型的vector容器 void myprint(vectorint v) {for (vectorint::iterator it v.begin(); it ! v.end(); it) {cout *it;if (it 1 ! v.end()) {cout ;}else {cout endl;}} }void test() {vector vectorint v;vectorintv1,v2,v3;for (int i 0; i 5; i) {v1.push_back(i);v2.push_back(i 2);v3.push_back(i 4);}v.push_back(v1);v.push_back(v2);v.push_back(v3);for_each(v.begin(), v.end(), myprint); } 九、注意事项 1、vector容量capacity和大小size的区别 vector实例化对象时capacity可预先设定当vector自增时需将原空间中数据赋值到新内存空间为了避免数据量过大或者频繁发生数据拷贝影响效率在使用时可申请足够大小容量capacity。 vector大小size是存储数据的个数随着插入数据递增删除数据递减。 2、vector容量capacity不会自减 vector的clear()函数清空向量中的数据是将size设置为0。容量也就是向量所占内存空间并未改变。当需要释放向量所占空间时可以使用swap()函数与一个临时对象进行交换利用临时对象参与运算后立即销毁的特性释放空间或者插入一个大括号代码段进行交换出大括号时自动析构交换过的向量。 void test() {vectorintv(10);cout v.size() v.capacity() endl;v.clear();cout v.size() v.capacity() endl;//方法1vectorint().swap(v);//方法2{vectorinttemp;v.swap(temp);}cout v.size() v.capacity() endl; } 3、vector容器插入数据是插入对象的复制体而不是插入对象本身这种机制防止对象的操作影响向量内数据 void test() {vector vectorint v;vectorintv1,v2,v3;v.push_back(v1);v.push_back(v2);v.push_back(v3);for (int i 0; i 5; i) {v1.push_back(i);v2.push_back(i 2);v3.push_back(i 4);}for_each(v.begin(), v.end(), myprint); } 这个函数输出结果为空验证了对象操作无法影响到向量内部数据
http://wiki.neutronadmin.com/news/174672/

相关文章:

  • 枣庄定制网站建设公司seo优化一般多少钱
  • 河南智能网站建设哪家好天天自学网网址
  • wordpress建什么网站好专业建设网站哪个好
  • wordpress站点图标陕煤建设集团韩城分公司网站
  • 东莞网站建设(曼哈顿信科)手机网站模板.
  • 织梦网站采集规则枫树seo网
  • vue做网站导航微信营销是什么
  • 龙岩企业网站建设制作做抽奖网站用什么cms
  • 网站公司可以做英文网吗大网站开发费用
  • 做网站买那种服务器好WordPress主题开发者
  • 好的网站收入怎么用centos做网站
  • 利用帝国cms网站建设sdcms网站建设模板
  • 医院手机网站源码软件开发培训学校排行
  • 网站建设与管理这门课程的介绍做网站的公司北京有哪些
  • sns网站是什么江苏无锡今天的最新发布消息
  • 国网公司网站武安市精品网站开发
  • 做t恤的网站做网站的色彩搭配的小知识
  • 网站开发的项目总结网站色调代号
  • 金华 网站建设哪些网站适合用自适应
  • 国际最好的摄影作品网站竞价推广套户渠道商
  • 株洲网站搜索优化富阳网站定制开发哪家公司好
  • 手机访问不了自己做的网站吗电子商务网站平台建设
  • 网站建设中服务器的搭建方式郑州市科协网站
  • 网站备案前置审批文件网站 带数据
  • 公司网站开发策划书广告制作公司哪家好
  • 山东品牌建设网站网站底部优化文字
  • 专门做win7的网站模板免费下载网站
  • 扫描网站特征dede淮南招聘网站建设
  • 文章管理系统网站模板徐州网站无障碍建设
  • 怎么刷网站点击量上线了小程序