C++ 总结

1、迭代器并不是都可以进行加减

迭代器实质上是一个指针,但是,并不是所有的容器的迭代器可以支持加减操作。

能进行算术运算的迭代器只有随机访问迭代器,要求容器元素存储在连续内存空间内,
即vector、string、deque的迭代器是有加减法的;
而map、set、multimap、multiset、list的迭代器是没有加减法的。他们仅支持++itr、–itr这些操作。

要获得两个迭代器直接的差值可以使用 std::distance()

2、定义并初始化二维数组

vector

插入元素主要分为使用[]插入、使用insert接口插入两种方式,其区别如下:

[]插入,如果key有重复,会直接覆盖之前的值

insert插入,如果key有重复,则直接插入失败。在不指定位置插入单个键值对时,可以通过返回值std::pair

4、优先队列主要是对顶部进行操作,有点类似栈,如果出现了要对中间某个值更新优先级的情况,大多数语言都不支持。

另外,使用优先队列的场景,一般也可以使用可自动排序的map、set进行替代,也能够达到减少时间复杂度的目的。如 C(VosMap)、C++(map)、Java(TreeMap)、Python(SortedDict),目前Go/Javascript语言还没有相应的map可以使用。

Original: https://www.cnblogs.com/hdk1993/p/15628786.html
Author: 程序员修练之路
Title: C++ 总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535358/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程

    JNI/NDK Java调用C/C++前言通过第三篇文章讲解在实际的开发过程中Java层调用C/C++层的处理流程。其实我们在很大的业务里也需要C/C+ +层去调用Java层,这两…

    C++ 2023年5月29日
    044
  • C++深拷贝与浅拷贝

    对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝…

    C++ 2023年5月29日
    035
  • C++经典案例

    per-thread的单例模式 //单例子模式,per-thread的单例模式 IPCThreadState* IPCThreadState::self() //IPCThread…

    C++ 2023年5月29日
    056
  • C/C++定义全局变量/常量几种方法的区别

    在讨论全局变量之前我们先要明白几个基本的概念: 编译单元(模块):在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK…

    C++ 2023年5月29日
    070
  • 聊聊 C++ 中的四种类型转换符

    一:背景 在玩 C 的时候,经常会用 void* 来指向一段内存地址开端,然后再将其强转成尺度更小的 char* 或 int* 来丈量一段内存,参考如下代码: int main()…

    C++ 2023年5月29日
    069
  • C++ 有向图最短路径之Dijkstra算法

    摘自:https://blog.csdn.net/chuanzhouxiao/article/details/88831371 一、思路 1.Dijkstra算法 每次都是从起始顶…

    C++ 2023年5月29日
    093
  • C++选择文件打开方式的函数

    最近让同事给UE4一个功能,识别出 .ts、.json文件,然后双击这些文件可以直接打开。 默认双击 .json 时,调用 Windows 自带的记事本打开文件,不习惯,想着能否像…

    C++ 2023年5月29日
    062
  • 深入理解c++构造函数, 复制构造函数和赋值函数重载(operator=)

    以下代码编译及运行环境均为 Xcode 6.4, LLVM 6.1 with GNU++11 support, Mac OS X 10.10.2 调用时机 看例子 1,2,3,4 …

    C++ 2023年5月29日
    068
  • C++ 获取当前时间毫秒数

    在window环境下:1、精确到毫秒 include “stdafx.h” include include Original: https://www.cn…

    C++ 2023年5月29日
    052
  • CLion之C++框架篇-安装工具,基础框架的搭建(一)

    背景 日常学习C++,也就是看看书、在vim里写写代码。在日常项目开发中,也是边看书(一是系统性理解、二是找找有什么更好的代码编写方式)边写代码,会顺带看看别人的代码怎么写的? 日…

    C++ 2023年5月29日
    060
  • Android JNI c/c++调用java 无需新建虚拟机

    近期通过研究SDL源码 得出android JNI c/c++调用java 无需新建虚拟机: 具体步骤如下 第一步获得:两个参数 JNIEnv和jclass void Java_c…

    C++ 2023年5月29日
    044
  • 设置c++中cout输出的字体颜色

    一种方法是通过右键控制台进行颜色设置,但是这种方法的问题在于它是全局的,没有具体文字的区分。另外一种方法就是使用代码来修改,本文主要介绍的就是这种方法。 最重要的函数是SetCon…

    C++ 2023年5月29日
    048
  • C++常用的设计模式

    单例模式: 单例模式:确保一个类只有一个实例,并且这个实例化向整个系统提供 (例如只有一台打印机,可以有多个打印任务队列,但是只能有一个正在打印)。单例模式又分为(饿汉模式,懒汉模…

    C++ 2023年5月29日
    046
  • 34.C++-QT信号槽分析

    moc 元对象编译器, 全称是 Meta-Object Compiler,也就是”元对象编译器”。是QT翻译扩展语法到C++语言的工具,目前见扩展了信号与槽…

    C++ 2023年5月29日
    055
  • c++ 书籍

    c++ 书籍 入门 c++0x G:\doc\bianchengsuixiang\BUPSDXFA3TP7KCMLHALRHLIX2FEJEUJFEIT(信息技术)\IT\软件开发…

    C++ 2023年5月29日
    064
  • Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat

    在windows下使用pip安装包的时候提示报错:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.ba…

    C++ 2023年5月29日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球