Leetcode刷题笔记--语法篇

本文详细介绍了C++11中的新特性及其应用,包括增强的for循环、常用算法函数、字符串处理、pair与tuple类型、vector容器操作、auto关键字、list链表、stack和queue等内容,并提供了丰富的代码实例。

leetcode刷题笔记

C++11语法

一 、for循环的用法
//C++11 for循环的新写法
#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> number = {3, 4, 5, 6, 0, 2, 4};
    for(int num : number) {
        if(num != 0)
            cout << num << " ";
    }
    return 0;
}

输出结果
3 4 5 6 2 4
二、几个常用函数
  #include<algorithm>1sort(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
less<数据类型>()//从小到大排
greater<数据类型>()//从大到小排
int a[10];
for(int i = 1; i<=10 ;i++)
	a[i-1] = i;
sort(a,a+10,less<int>());
sort(a,a+10.greater<int>());2reverse(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,13copy(a.begin(),a.end(),b.begin()+1); //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开        始复制,覆盖掉原有元素4find(a.begin(),a.end(),10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置

三、getline函数
 istream& getline ( istream &is , string &str , char delim );
string s;
getline(cin,s,'#');

getline(cin,s);

其中 istream &is 表示一个输入流,譬如cin;
string&str表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为’\n’,也就是回车换行符(遇到回车停止读入)。

四、stringsteam用法

可以完成安全自动的类型转换

#include<sstream>
stringstream ss;
string s;
    
    int a;
    s = "1020";
    ss.clear();
    ss.str(s);
    ss>>a;
    cout<<a<<endl;

进行字符串的分割

    string s;
    stringstream ss;
    while(getline(cin,s))
    {
        ss.clear();
        ss.str(s);
        int sum = 0;
        int a;
        while(ss>>a)
        {
            sum += a;
         }
        cout<<sum<<endl;
     }

由于效率低,利用.clear(),.str(string str),进行重用
.str()可以原本地输出字符串

五、pair类型 tuple类型

pair(元组)可以存储两个不同类型的数据,应i程度上取代自定义结构体。
pair内置了各种比较函数,六哦即使优先比较first的大小,如果first的大小相同在比较second的大小
pair p;
p.first = 0; p.second = 1.1;
p = make_pair(0,1.1);

六vector

vector是不定长数组。其数组长度的扩增策略是每次乘2,

.emplace()
.push_back()
.emplace_back()
.begin()
.iterator()
.insert()


 
大的数组不要放在主函数当中
七、auto
for( auto it = d.begin(); it != d.end(); it++)

for(auto x:d)
{
}
for(auto &x:d) cin>>x;
auto a =1,b =1.0;//不可用,两个变量的类型不等
八、list链表
九、stack
十、queue
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值