全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++利用std::forward_list查找插入数据方法示例

std::forward_list介绍

std::forward_list是在C++11中引入的单向链表或叫正向列表。forward_list具有插入、删除表项速度快、消耗内存空间少的特点,但只能向前遍历。与其它序列容器(array、vector、deque)相比,forward_list在容器内任意位置的成员的插入、提取(extracting)、移动、删除操作的速度更快,因此被广泛用于排序算法。forward_list是一个允许在序列中任何一处位置以常量耗时插入或删除元素的顺序容器(sequence Container)。forward_list可以看作是对C语言风格的单链表的封装,仅提供有限的接口,和C中它的实现相比,基本上不会有任何开销。当不需要双向迭代的时候,与std::list相比,该容器具有更高的空间利用率。

forward_list的主要缺点是不能在常量时间内随机访问任意成员,对成员的访问需要线性时间代价;以及存储链接信息需要消耗内存,特别是当包含大量的小规模成员时。forward_list处于效率考虑,有意不提供size()成员函数。获取forward_list所包含的成员个数需要用std::distance(_begin, _end)算法。forward_list中的每个元素保存了定位前一个元素及后一个元素的信息,不能进行直接随机访问操作。

本文将给大家介绍关于C++用std::forward_list查找插入数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

示例代码:

//
// Forward_list.hpp
// 练习
//
// Created by hanzhiqiang on 2017/6/11.
// Copyright © 2017年 hanzhiqiang. All rights reserved.
//

#ifndef Forward_list_hpp
#define Forward_list_hpp

#include <stdio.h>
#include <iostream>
#include <forward_list>

using namespace std;

int main()
{
  forward_list<string> mList;
  mList.emplace_front("aaa");
  mList.emplace_front("bbb");
  mList.emplace_front("ccc");
  
  for (auto it = mList.begin(); it != mList.end(); it++)
  {
    cout<<*it<<endl;
  }
  
//  for (auto it = mList.before_begin(); it != mList.end(); it++)
//  {
//    cout<<*it<<endl;
//  }
  
//  auto itList = find(mList.begin(), mList.end(), "fff");
//  if (itList != mList.end()) \
//  {
//    mList.emplace_after(itList, "111");
//  }
//  else
//  {
//    mList.insert_after(mList.end(),"222");//c++ primer p 313 向末尾插入数据结果未知 error
//  }
  
  auto prev = mList.before_begin();
  auto curr = mList.begin();
  bool isInsert = false;
  while (curr != mList.end())
  {
    if (*curr == "fff")
    {
      curr = mList.insert_after(curr, "111");
      isInsert = true;
    }
    prev = curr;
    curr++;
  }
  
  if(!isInsert)
  {
    curr = mList.insert_after(prev, "222");//向末尾插入数据成功
  }
  
  for (auto it = mList.begin(); it != mList.end(); it++)
  {
    cout<<"插入元素后"<<*it<<endl;
  }
  
  cout<<"fuck"<<endl;
  return 0;
}

#endif /* Forward_list_hpp */

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# std  # forward  # list  # c  # C++中的std::initializer_list使用解读  # C++ STL标准库之std::list使用介绍及用法详解  # C++ std::initializer_list 实现原理解析及遇到问题  # C++ std::list的merge()使用方式与分析  # 是一个  # 链表  # 是在  # 相关内容  # 不需要  # 说了  # 遍历  # 不多  # 能在  # 时间内  # 更高  # 一处  # 更快  # 或删除  # 这篇文章  # 速度快  # 谢谢大家  # 需要用  # 将给  # 所包含 


相关文章: 常州自助建站:操作简便模板丰富,企业个人快速搭建网站  小型网站建站如何选择虚拟主机?  建站org新手必看:2024最新搭建流程与模板选择技巧  建站主机功能解析:服务器选择与快速搭建指南  如何选择可靠的免备案建站服务器?  建站主机服务器选型指南与性能优化方案解析  江苏网站制作公司有哪些,江苏书法考级官方网站?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何基于云服务器快速搭建网站及云盘系统?  如何在建站之星网店版论坛获取技术支持?  常州企业网站制作公司,全国继续教育网怎么登录?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  网站制作需要会哪些技术,建立一个网站要花费多少?  建站与域名管理如何高效结合?  linux top下的 minerd 木马清除方法  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  如何制作网站标识牌,动态网站如何制作(教程)?  如何选择靠谱的建站公司加盟品牌?  如何用美橙互联一键搭建多站合一网站?  建站之星会员如何解锁更多建站功能?  网站制作公司排行榜,抖音怎样做个人官方网站  如何在局域网内绑定自建网站域名?  制作证书网站有哪些,全国城建培训中心证书查询官网?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  建站主机选购指南与交易推荐:核心配置解析  高防服务器租用指南:配置选择与快速部署攻略  如何正确下载安装西数主机建站助手?  如何用AWS免费套餐快速搭建高效网站?  如何用好域名打造高点击率的自主建站?  C++时间戳转换成日期时间的步骤和示例代码  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  济南企业网站制作公司,济南社保单位网上缴费步骤?  如何在万网主机上快速搭建网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  nginx修改上传文件大小限制的方法  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  建站主机选购指南:核心配置优化与品牌推荐方案  如何选择适合PHP云建站的开源框架?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  香港服务器选型指南:免备案配置与高效建站方案解析  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  微信推文制作网站有哪些,怎么做微信推文,急?  如何快速启动建站代理加盟业务?  建站主机无法访问?如何排查域名与服务器问题  魔毅自助建站系统:模板定制与SEO优化一键生成指南  宝塔建站助手安装配置与建站模板使用全流程解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。