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

常州云计算网站建设磁力帝

常州云计算网站建设,磁力帝,网站建设的用例图,建设网站的群1、vector容器 1.1性质 a)该容器的数据结构和数组相似,被称为单端数组。 b)在存储数据时不是在原有空间上往后拓展,而是找到一个新的空间,将原数据深拷贝到新空间,释放原空间。该过程被称为动态拓展。 vec…

1、vector容器

1.1性质

        a)该容器的数据结构和数组相似,被称为单端数组

        b)在存储数据时不是在原有空间上往后拓展,而是找到一个新的空间,将原数据深拷贝到新空间,释放原空间。该过程被称为动态拓展

        

        vector迭代器支持随机访问。

1.2 构造函数

	std::vector<int> vec1{};//无参构造std::vector<int> vec2(3, 4);//初始化3个元素4到int型vector中std::vector<int> vec3(vec2.begin(), vec2.end());//迭代器初始化std::vector<int> vec4(vec3);//拷贝构造

 注意:拷贝构造函数中为深拷贝

1.3 赋值操作

	std::vector<float> vec1 = temp_vec;//operator=,深拷贝形式std::vector<float> vec2;vec2.assign(3, 8); // n个elem赋值vec2.assign(vec1.begin(), vec1.end());//区间赋值,这里是区间是迭代器

 1.4 vector容量和大小

void Print_vec(std::vector<float>& vec) {for (auto i : vec) {cout << i << " ";}cout << endl;
}
int main() {//初始化vectorstd::vector<float> vec(5, 8);std::cout << vec.empty() << std::endl; ;//判断是否为空std::cout << vec.size() << std::endl; //输出vector容器中元素数量std::cout << vec.capacity() << std::endl; //输出vector容器中容量vec.resize(10); //重新指定vec的元素数量,多余的默认0填充vec.resize(15, 3);//重新指定vec的元素数量的重载,可以指定填充值Print_vec(vec);system("pause");return 0;
}

1.5 vector插入删除

1.6vector数据存取

 

 1.7 vector互换容器swap

        目的:实现两个容器内容互换。

        实际用途:实现容器容量的收缩,减少内存浪费。

        (说明:当一个大容量的vector只有少量元素时,只使用resize重新指定其元素数量并不会改变其容量大小,而使用一个小容量的vector与其进行内容互换的实质是将两个容器的地址互换,此时使用的小容量vector是匿名类型,系统会自动把多余的容量内存释放。)

目的示例:

void Print_vec(std::vector<float>& vec) {for (auto i : vec) {cout << i << " ";}cout << endl;
}
int main() {//初始化vectorstd::vector<float> vec1(5, 8);std::vector<float> vec2(9, 4);Print_vec(vec1);Print_vec(vec2);vec1.swap(vec2);Print_vec(vec1);Print_vec(vec2);system("pause");return 0;
}

实际用途示例:

	std::vector<float> vec1(10000, 8);std::vector<float> vec2(9, 4);std::cout << vec1.capacity() << std::endl;std::cout << vec1.size() << std::endl;vec1.swap(vec2);std::cout << vec1.capacity() << std::endl;std::cout << vec1.size() << std::endl;

 1.8 vector预留空间

        目的:减少vector在动态拓展时的拓展次数,即减少从原空间拷贝到新空间的次数。

        接口:vec.reserve(r_size)

int main() {//初始化vector//统计开辟空间次数,利用指针指向vec的首地址,当指针地址改变则说明开辟了一次空间int* p = NULL;int num = 0;std::vector<int> vec;vec.reserve(10000);for (int i = 0; i < 10000; ++i) {vec.push_back(i);if (p != &vec[0]) {p = &vec[0];num++;}}std::cout << num << std::endl;system("pause");return 0;
}

预留空间与不预留空间的动态拓展次数对比:

 

 

http://www.15wanjia.com/news/31070.html

相关文章:

  • 专业建站开发淘宝美工培训
  • 免费婚纱摄影网站模板软文推广的优点
  • 商城网站定制怎么做baidu优化
  • 网站php源码破解版seo高级优化技巧
  • 河南电力建设工程公司网站网站怎么才能被百度收录
  • 南阳做网站seo的站长统计app软件下载
  • 湖南疫情最新消息2019百度seo关键词排名优化教程
  • 我要浏览国外网站怎么做广告关键词有哪些
  • 项目网发布信息平台郑州seo优化顾问
  • 一个新的网站怎么做宣传软件开发一般需要多少钱
  • 网站备案号怎么制作网页推广
  • 网站怎么做数据接口短视频怎么赚钱
  • 网站备案需要哪些资料网站推广软件免费版
  • wordpress伪静态 404杭州seo排名费用
  • 昆明做百度网站电话网店培训班
  • 政府类网站建设总结wordpress建站公司
  • 成都高级网站建设百度百科词条入口
  • wordpress仿站实战教程今日武汉最新消息
  • 怎么建设好一个外贸购物网站免费网站搭建平台
  • 公司名称变更网站要重新备案怎么弄自己的网站
  • 金华做网站公司今天重大新闻头条新闻军事
  • 常州网站推广百度seo排名查询
  • 网站群建设原则潮州网络推广
  • 河北优化网站获客qq公司页面设计
  • 湛江网站制作优化seo优化服务是什么意思
  • 政务公开网站项目建设书推广赚钱项目
  • 乐清高端网站建设网络视频营销
  • 成都个人网站网络营销策划推广方案
  • 广东建设信息网成绩查询汨罗网站seo
  • 住小帮 家居装修设计平台百度seo排名原理