网站跳出率怎么计算,网页制作与设计书籍心得体会,装修网站平台排行榜,wordpress seo知乎首先我们要学习的是容器
第一个是容器的初始化#xff08;构造方式#xff09;有三种方式
分别是
第一种
int arr[]{1,2,3}
vectorint v1(arr,arr3)
即容器存放的种类和从另外一个数组去拷贝一段数据。
第二种
vectorint v2(3,10);
第一个3是指存放…首先我们要学习的是容器
第一个是容器的初始化构造方式有三种方式
分别是
第一种
int arr[]{1,2,3}
vectorint v1(arr,arr3)
即容器存放的种类和从另外一个数组去拷贝一段数据。
第二种
vectorint v2(3,10);
第一个3是指存放的进入容器的个数
第二个10是存进容器的值。
第三种
vectorint v3(v1);
直接将其他容器拷贝过来。
然后我们要了解容器的赋值方法
第一种
vector.assign(beg,end)左闭右开
例如
int arr[]{1,2,3}
vector.assign(arr,arr3);
那么容器就会装载1,2.
之所以要左闭右开。是因为一个容器的结尾并不是这个容器的最后一个元素而是元素的后一位。
所以vector.begin()是指的容器的第一位。vector.end()是容器的n1位n指元素个数
那么这样vector.assign(v1.begin(),v2.end())就会拷贝中v2这个容器中的所有元素。
vector.assign(n,elem)
例如vector.assign(3,10);
同构造容器不再赘述。
第三种vector.swap()
例如v2.swap(v1);就会将v1,v2的内容进行交换。
然后我们要讲的就是容器的大小
首先是
vector,size()那么返回值就是这个中元素的个数。int类型
第二个
vector.empty()。这个将会返回bool值如果容器为空将会返回ture否则会返回false
第三个
vector.resize(num);重新指定容器的大小如果容器变长则会用默认值进行填充如果变短则会自动删除超出容器大小的值。
第四个
vector.resize(num,elem)。这个地方就是把默认值替换为elem。规则相同。
容器的访问
vector[]进行访问就可以了类比数组。
或者vec.at()。一样的是传入位置即可。
但是如果使用vec.at出现越界会抛出out_of_range异常。
而vec[]会直接报错。但是区别不大。
接下来是容器的插入
vector.insert(pos,elem);
这个会在pos位置插入elem元素的拷贝并且返回新数据的位置。
vector.insert(pos,n,elem);
在pos位置插入n个elem数据无返回值
vector.insert(pos,beg,end);
注意Pos是对应位置的指针即vector.insert(v1.begin()3,elem);
在pos位置插入beg到end区间的数据前闭后开无返回值。
然后就是对容器的末尾进行增删的操作。
vector.push_back(num)和vector.pop_back();即可
接下来我们来学习迭代器
首先迭代器的作用可以减少容器的越界访问。
再就是迭代器的构造
vectorint::iterator it;
itv1.begin();
cout *it;通过*就可以实现对迭代器指向的元素进行访问和操作。
然后我们来学习迭代器的失效
vector.insert(it,8)由于容器的存储可能会整体搬迁那么就可能导致迭代器的失效
在这里由于insert()可以返回插入的值的新的位置。
所有itvector.insert(it,8)可以避免这个问题。
另外一种就是删除元素也有可能导致的迭代器失效。
vectorint::iteretor it2;
it2v1.erase(it);
这个时候由于已经erase(it),系统会默认迭代器已经失效了。从而再次使用的时候会报错。
同理如果用itv1.erase(it);就会重新使得迭代器有效就可以避免这种问题的出现。