machine-learning-notes
  • 封面
  • 目录
  • 前言
  • 个人前言
  • 机器学习前言
    • 什么是机器学习和模式识别
    • 机器学习的应用
    • 机器学习的流程
    • 不同的机器学习算法对相同数据预测效果不同
    • 快速入门机器学习
    • 机器学习需要参考哪些书
    • 机器学习的学习路径
    • 深度学习的学习路径
    • 互联网机器学习特定岗位所需技能
  • 机器学习面试
  • 数学基础
  • 微积分
    • 泰勒展开
    • e的直观认识
    • 傅里叶变换
    • 希尔伯特空间
  • 线性代数
    • 范数
    • 矩阵求导
    • 特征值
    • 奇异值分解
  • 概率与信息论
    • 综述概率论基本定义
    • 概率论与贝叶斯先验
    • 正态分布
    • 贝叶斯概率
    • 概率符号说明
    • 共轭先验
    • 信息论
  • 数值计算与优化
    • 最小二乘法
    • 等式约束的拉格朗日乘子法
    • 凸优化
      • 凸集和凸函数
      • 凸优化问题
  • 梯度下降算法
    • 随机梯度下降SGD
    • 动量法Momentum
    • 牛顿动量Nesterov
    • AdaGrad
    • RMSprop
    • Adadelta
    • Adam
    • Nadam
    • AMSGrad
    • AdasMax
  • 概率图模型
    • 概率图模型概论
    • 概率图简介
  • 编程基础
  • linux
    • linux常用命令
    • shell
      • 输入输出重定向
  • python
    • python简介
    • python语法
      • 基础语法
      • 数据结构
      • 过程控制
      • 函数
      • 类和对象
      • 文件操作
      • 正则表达式
    • python库
      • numpy
      • pandas
      • scipy
      • matplotlib
      • scikit-learn
    • python应用
      • 排序算法
  • 数据结构与算法
    • 数据结构
    • 算法思想
      • 排序
        • 堆排序
        • 归并排序
        • 快速排序
      • 递归
    • 剑指offer
      • 链表
      • 二叉树
      • 数组
      • 字符串
      • 栈和队列
      • 递归
      • 动态规划
      • 其他
    • leetcode
    • 编程语言
      • c++
  • Hadoop
    • Hadoop简介
    • MapReduce
  • Hive
  • Spark
  • TensorFlow
    • TensorFlow1.0
      • TensorFlow基础
      • TensorFlow基础概念解析
      • TensorFlow机器学习基础
      • Tensorflow分布式架构
    • TensorFlow2.0
  • PyTorch
  • 机器学习
  • 机器学习概论
  • 特征工程
  • 感知机
  • k近邻
  • 朴素贝叶斯
  • 线性模型
    • 最大熵模型
    • 指数族分布与广义线性模型
    • 线性回归
      • Ridge回归(岭回归)
      • Lasso回归
    • Logistic回归-对数几率回归
  • 决策树
  • 支持向量机
    • 线性可分支持向量机与硬间隔最大化
    • 线性支持向量机与软间隔最大化
    • 非线性支持向量机与核函数
    • 序列最小最优化算法SMO
    • SVM总结
  • 集成学习
    • Bagging
      • 随机森林
    • Boosting
      • AdaBoost
      • GradientBoosting
        • GBDT
        • XGBoost
          • XGBoost理论
          • XGBoost实践
    • Stacking
  • 降维
    • PCA主成分分析
    • 流形学习
  • EM算法
  • HMM隐马尔科夫模型
  • CRF条件随机场
  • 聚类
    • k均值聚类
    • 高斯混合模型
  • 主题模型
    • LDA隐狄利克雷分布
  • 知识点
    • 损失函数
    • 负采样
  • 机器学习算法总结
  • 深度学习
  • 深度学习概论
  • ANN人工神经网络
  • 知识点
    • Batch Normalization
  • CNN卷积神经网络
  • 深度学习优化算法
  • RNN循环神经网络
  • LSTM长短期记忆网络
  • GRU门控循环单元
  • GNN图神经网络
    • GNN图神经网络综述
    • GCN图卷积网络
      • GCN图卷积网络初步理解
      • GCN图卷积网络的numpy简单实现
      • GCN图卷积网络本质理解
      • GCN图卷积网络全面理解
      • SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS ICLR2017
  • 神经网络架构搜索
    • Weight-Agnostic-Neural-Networks Google2019
  • 强化学习
  • 强化学习概论
  • 马尔科夫决策过程
  • 动态规划
  • 无模型方法一:蒙特卡洛
  • 无模型方法二:时间差分
  • 无模型方法三:多步自举
  • 函数近似和深度网络
  • 策略梯度算法
  • 深度强化学习
  • 基于模型的强化学习
  • 强化学习前景
  • 自然语言处理
  • 自然语言处理概论
  • 自然语言
  • 语言模型和中文分词
  • word2vec
    • word2vec概述
    • word2vec算法原理
    • word2vec源码分析
    • word2vec实践
  • Seq2Seq模型和Attention机制
  • Self-Attention和Transformer
  • 知识图谱
  • 推荐系统
  • 推荐系统概论
  • 基础知识
  • 进阶知识
    • 机器学习
      • Factorization Machines ICDM2010
    • embedding
      • Network Embedding
        • LINE: Large-scale Information Network Embedding
    • 深度学习
      • DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017
      • DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data CIKM2013
    • 图卷积网络
      • Graph Convolutional Neural Networks for Web-Scale Recommender Systems KDD2018
    • 强化学习
      • DRN基于深度强化学习的新闻推荐模型
  • 业界应用
    • YouTube
      • Deep Neural Networks for YouTube Recommendations RecSys2016
    • Alibaba
      • Learning Tree-based Deep Model for Recommender Systems KDD2018
      • Deep Interest Network for Click-Through Rate Prediction KDD2018
      • DSIN:Deep Session Interest Network for Click-Through Rate Prediction IJCAI2019
Powered by GitBook
On this page
  • c++
  • STL容器
  • 顺序容器
  • 关联容器
  • 容器适配器
  • algorithm
  • sort排序
  • reverse反转
  • string字符串类
  • substr提取部分字符串
  • c_str()转为char*数组
  • to_string数值转字符串
  • char[],char *,string之间转换
  • string赋值
  • 参考资料

Was this helpful?

  1. 数据结构与算法
  2. 编程语言

c++

Previous编程语言NextHadoop

Last updated 4 years ago

Was this helpful?

c++

    • [c_str()转为char*数组](#c_str()转为char*数组)

STL容器

顺序容器

元素的插入位置和元素的值无关,只跟插入的时机有关。

vector向量

  • assign

    vector有个函数assign, 可以帮助执行赋值操作。assign会清空你的容器。

    函数原型:

    void assign(const_iterator first,const_iterator last);
    // vector.assign(que.begin(), que.end());
    void assign(size_type n,const T& x = T());
    // vector.assign(3, 2.1);// 3个2.1

    功能:将区间[first, last)的元素赋值到当前的vector容器中,或者赋n个值为x的元素到vector容器中,这个容器会清除掉vector容器中以前的内容。

  • begin(), end()

    这两个类似于数组的地址指针

    begin函数原型:

    iterator begin();
    const_iterator begin();

    功能:返回一个当前vector容器中起始元素的迭代器。

    end函数原型:

    iterator end();
    const_iterator end();

    功能:返回一个当前vector容器中末尾元素的迭代器。

    可以通过使用 * vector.begin() 或 * vector.end() 来获得 vector 中第一个或最后一个的值;

    也可以直接使用 vector.front() 、vector.back() 来得到 vector 首尾的值。

  • front(), back()

    front函数原型:

    reference front();
    const_reference front();

    功能:返回当前vector容器中起始元素的引用。

    back函数原型:

    reference back();
    const_reference back();

    功能:返回当前vector容器中末尾元素的引用。

deque双队列

  • push_front, pop_front()

  • push_back, push_back()

list链表

  • iterator

    list<int>::iterator current = numbers.begin();
  • erase

    numbers.erase(current);

关联容器

关联容器内的元素是排序的,插入任何元素,都按照相应的排序专责来确定其位置。

关联式容器的特点是在查找时具有非常好的性能。

通常以平衡二叉树方式实现,插入、查找和删除的时间都是O(logN)。

set集合

multiset

map映射

multimap

容器适配器

stack栈

queue队列

priority_queue优先级队列

优先级高的元素先出。

algorithm

使用此函数需先包含:

#include <algorithm>
using namespace std;

sort排序

sort(first_pointer,first_pointer+n,cmp)

该函数可以给数组,或者链表list、向量排序。

实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此外,它还结合了插入排序和推排序。系统会根据你的数据形式和数据量自动选择合适的排序方法,这并不是说它每次排序只选择一种方法,它是在一次完整排序中不同的情况选用不同方法,比如给一个数据量较大的数组排序,开始采用快速排序,分段递归,分段之后每一段的数据量达到一个较小值后它就不继续往下递归,而是选择插入排序,如果递归的太深,他会选择推排序。

此函数有3个参数:

  • 参数1:第一个参数是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。

  • 参数2:第二个参数相对较好理解,即首地址加上数组的长度n(代表尾地址的下一地址)。

  • 参数3:默认可以不填,如果不填sort会默认按数组升序排序。也就是1,2,3,4排序。也可以自定义一个排序函数,改排序方式为降序什么的,也就是4,3,2,1这样。

reverse反转

reverse(s.begin(), s.end());

string字符串类

substr提取部分字符串

string str_new = str.substr(0, length);

c_str()转为char*数组

const char* cstr = str.c_str();

to_string数值转字符串

功能:将数值转化为字符串。返回对应的字符串。

函数原型:

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);

char[],char *,string之间转换

string赋值

#include <iostream>
using namespace std;

string num1 = string("111");

string s;
s.push_back(1 + '0');

参考资料

“c++中常见的STL容器类型”参考此课件。

char[],char *,string之间转换
C++模版与STL库介绍
返回顶层目录
返回上层目录
STL容器
顺序容器
vector向量
deque双队列
list链表
关联容器
set集合
multiset
map映射
multimap
容器适配器
stack栈
queue队列
priority_queue优先级队列
algorithm
sort排序
reverse反转
string字符串类
substr提取部分字符串
to_string数值转字符串
char[],char *,string之间转换
string赋值