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

企业网站自己怎么做南山做网站多少钱

企业网站自己怎么做,南山做网站多少钱,付费网站做推广哪个好,网站建设费用明细目录 vector list list和vector的区别 1. 底层实现#xff1a; 2. 动态性和静态性#xff1a; 3. 内存管理#xff1a; 4. 迭代器和指针#xff1a; 5. 访问效率#xff1a; 6. 适用场景#xff1a; vector std::vector 是 C STL 提供的动态数组容器#xff0…目录 vector list  list和vector的区别 1. 底层实现 2. 动态性和静态性 3. 内存管理 4. 迭代器和指针 5. 访问效率 6. 适用场景 vector std::vector 是 C STL 提供的动态数组容器提供了多种操作。以下是一些常见的 std::vector 操作一一列举出来 初始化和基本操作 std::vectorint myVector; // 初始化一个空的向量 myVector.push_back(1); // 添加元素到向量末尾 myVector[2] 10; // 访问和修改向量元素 int size myVector.size(); // 获取向量大小插入和删除元素 myVector.insert(myVector.begin() 1, 4); // 插入元素到指定位置 myVector.erase(myVector.begin() 2); // 删除指定位置的元素 myVector.clear(); // 清空向量范围操作 std::vectorint source {1, 2, 3, 4, 5}; std::vectorint destination source; // 复制整个向量 std::vectorint subVector(source.begin() 1, source.begin() 4); // 复制部分向量元素访问和遍历 int elementAtIndex2 myVector[2]; // 使用下标访问元素// 使用迭代器访问元素 for (std::vectorint::iterator it myVector.begin(); it ! myVector.end(); it) {// ... }// 使用范围-based for 循环 for (const auto element : myVector) {// ... }其他常用方法 int firstElement myVector.front(); // 获取第一个元素 int lastElement myVector.back(); // 获取最后一个元素 bool isEmpty myVector.empty(); // 判断向量是否为空 myVector.resize(8); // 改变向量大小移动语义和右值引用 std::vectorstd::string source {apple, orange, banana}; std::vectorstd::string destination(std::make_move_iterator(source.begin()), std::make_move_iterator(source.end()));使用迭代器进行插入和删除 std::vectorint::iterator it myVector.begin() 2; myVector.insert(it, 10); // 在指定位置插入元素 myVector.erase(it 3); // 在指定位置删除元素在特定条件下删除元素 myVector.erase(std::remove(myVector.begin(), myVector.end(), 3), myVector.end());使用函数对象进行元素变换 struct Square {int operator()(int x) const {return x * x;} };std::transform(myVector.begin(), myVector.end(), myVector.begin(), Square());使用 std::find 查找元素 int searchElement 5; auto it std::find(myVector.begin(), myVector.end(), searchElement); if (it ! myVector.end()) {// 元素找到的处理 }排序向量 std::sort(myVector.begin(), myVector.end());反向遍历向量 // 使用逆向迭代器 for (auto it myVector.rbegin(); it ! myVector.rend(); it) {// ... }查找最小和最大元素 auto minElement std::min_element(myVector.begin(), myVector.end()); auto maxElement std::max_element(myVector.begin(), myVector.end());计算向量的和 int sum std::accumulate(myVector.begin(), myVector.end(), 0);使用 lambda 表达式进行元素变换 // 将所有元素加倍 std::transform(myVector.begin(), myVector.end(), myVector.begin(), [](int x) { return x * 2; });使用 std::copy 复制向量 std::vectorint copyVector; std::copy(myVector.begin(), myVector.end(), std::back_inserter(copyVector));将向量转为数组 int* arrayData myVector.data();遍历并修改所有元素 for (auto element : myVector) {element * 2; } 使用自定义比较函数进行排序 // 按照元素的绝对值进行升序排序 std::sort(myVector.begin(), myVector.end(), [](int a, int b) {return std::abs(a) std::abs(b); });使用 std::reverse 反转向量 std::reverse(myVector.begin(), myVector.end());list  1. 初始化和基本操作 #include liststd::listint myList; // 初始化一个空的列表 std::listint myList2 {1, 2}; // 使用初始化列表初始化列表myList.push_back(3); // 在列表末尾添加元素 myList.push_front(2); // 在列表开头添加元素int frontElement myList.front(); // 获取列表第一个元素 int backElement myList.back(); // 获取列表最后一个元素myList.pop_back(); // 删除列表末尾的元素 myList.pop_front(); // 删除列表开头的元素2. 插入和删除元素  #include liststd::listint myList {1, 2, 3, 4};auto it myList.begin(); it; // 移动到第二个元素的位置myList.insert(it, 5); // 在指定位置插入元素 myList.erase(it); // 删除指定位置的元素myList.remove(3); // 删除列表中所有值为3的元素 myList.clear(); // 清空列表3. 迭代器和遍历 #include liststd::listint myList {1, 2, 3, 4};// 使用迭代器遍历列表 for (std::listint::iterator it myList.begin(); it ! myList.end(); it) {// ... }// 使用范围-based for 循环 for (const auto element : myList) {// ... }5. 查找和替换 #include list #include algorithmstd::listint myList {1, 2, 3, 4};auto it std::find(myList.begin(), myList.end(), 3); // 查找元素if (it ! myList.end()) {// 元素找到的处理 }myList.unique(); // 删除相邻重复元素6. 合并和拆分 #include liststd::listint myList1 {1, 3, 5}; std::listint myList2 {2, 4, 6};myList1.merge(myList2); // 合并两个已排序的列表std::listint newList; auto it std::find(myList1.begin(), myList1.end(), 3); newList.splice(newList.begin(), myList1, it, myList1.end()); // 从一个列表移动元素到另一个列表7. 使用自定义类型 #include list #include iostream// 自定义类型 struct Person {std::string name;int age; };int main() {// 使用自定义类型的列表std::listPerson people {{Alice, 25}, {Bob, 30}, {Charlie, 22}};// 访问和修改自定义类型的列表元素auto it people.begin();it-age 32;// 迭代自定义类型的列表元素for (const auto person : people) {std::cout person.name - person.age years old std::endl;}return 0; }8. 将列表转为数组 #include list #include vectorstd::listint myList {1, 2, 3, 4};// 将列表转为数组 std::vectorint myVector(myList.begin(), myList.end());9. 自定义比较函数进行排序  #include list #include algorithm #include iostream// 自定义比较函数 bool compare(int a, int b) {return a b; // 降序排序 }int main() {std::listint myList {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};// 使用自定义比较函数进行排序myList.sort(compare);// 输出排序后的列表元素for (const auto element : myList) {std::cout element ;}std::cout std::endl;return 0; }list和vector的区别 1. 底层实现 std::list 使用双向链表实现每个元素存储下一个元素和前一个元素的地址因此在插入和删除元素时效率较高。但是由于不是连续存储的随机访问元素的性能较差。 std::vector 使用动态数组实现元素在内存中是连续存储的支持通过索引进行快速的随机访问。但在插入和删除元素时可能需要移动其他元素因此效率相对较低。 2. 动态性和静态性 std::list 是动态容器可以在运行时动态增加或删除元素。 std::vector 是静态容器其大小在声明时就已经确定无法动态改变。需要重新分配内存和复制元素才能改变其大小。 3. 内存管理 std::list 每个元素都有独立的内存块插入和删除元素时不需要移动其他元素因此内存管理较为灵活。但是由于链表结构会带来额外的指针开销。 std::vector 元素在内存中是紧密排列的随机访问效率高。但插入和删除元素可能需要移动其他元素导致额外的开销。 4. 迭代器和指针 std::list 提供双向迭代器支持双向遍历。 std::listint::iterator it myList.begin(); std::vector 提供随机访问迭代器支持快速的随机访问 std::vectorint::iterator it myVector.begin();5. 访问效率 std::list 随机访问效率较低因为需要沿着链表逐个移动。但在插入和删除元素时std::list 的性能较好尤其是在中间位置。 std::vector 允许通过索引进行快速的随机访问因为元素在内存中是连续存储的。然而在中间插入或删除元素时可能涉及元素的移动效率较低。 6. 适用场景 std::list 适用于频繁的插入和删除操作以及在序列中间位置进行操作的场景。 std::vector 适用于需要高效随机访问的场景以及在序列末尾进行插入和删除操作的场景。 选择使用 std::list 还是 std::vector 取决于具体的使用场景和操作需求。需要根据插入、删除、访问等操作的频率和性能要求来选择合适的容器
http://www.pierceye.com/news/345633/

相关文章:

  • 主域名进入网站广告标识标牌制作厂家
  • 网站建设基础流程摘要专题网站建设策划
  • 滁州网站建设电话网站建设与网站优化
  • 慈溪做网站公司哪家好淘宝商城的网站建设
  • 安徽建设厅网站怎么打不开太原网络搭建
  • idea 网站开发最好的免费推广平台
  • 专业排名优化网站怎么建网站教程视频app
  • 全国八大员报名官方网站支付宝小程序开发工具
  • 怎么查看vps网站服务器时间中国建设会计协会网站
  • 门户网站上的广告怎么做深圳服装网站建设
  • 公司网站上线的通知抚州营销型网站建设
  • 中国住房城乡和城乡建设部网站小广告文案
  • 做带字头像的网站wordpress 翻页设置
  • 网站横幅js代码公众号如何申请
  • 找网站建设需要问什么软件物联网平台功能
  • 含山县城市建设有限公司网站成都中高风险地区名单最新
  • 鄂州手机网站建设深圳seo网站设计
  • 网站内容的实现方式建筑设计人才招聘
  • 网站做优化效果怎样iis怎么做网站空间
  • 重庆市建设局网站郑州网站建设哪一家好
  • wordpress指定分类广告金融网站排名优化
  • 美妆网站建设方案陕西网络公司网站建设
  • 北京地铁建设的网站深圳建网站兴田德润可信
  • 平台门户网站建设企业战略规划方案
  • 北京网站备案的地址住房和城乡建设部网站质保金
  • 网络营销自学网站腾讯云服务器cvm
  • 建设旅行网站策划书浙江省职业能力建设处网站
  • 网站项目建设的组织机构wordpress做登录
  • 定制杯子岳阳优化营商环境
  • 中学院新校区建设专题网站如何搭建网络教学平台