创建vite方式

npm init vite-app <project-name>

npm create @vitejs/app <project-name>

windows刷新dns

ipconfig /flushdns

短暂解决gayhub无法访问问题

No connected devices found; please connect a device, or see flutter.dev

flutter config --android-sdk "D:\Program Files\androidSDK"

pyinstaller打包失败

解决(清除缓存)
pyinstaller --clean --win-private-assemblies -F XXXX.py

vim锦囊妙计

已经打开的文件中新建文件

:e [filename]
:tabe [filename](neovim)

添加文件名

:w [filename]

遍历string

#include <iostream>
#include <string>

int main()
{
    std::string s1{"do something"};
    for(int i=0;i<s1.size();++i){
        // no no no   bad smell
    }
    for(decltype(s1.size())i=0;i<s1.size();++i){
        // yeah 
        std::cout<<s1[i]
            <<" ";
    }
    std::cout<<std::endl;
    
    // 这里 s1.size() 是 string::size_type 类型因此需要 decltype类型推导
}

范围for

#include <iostream>
#include <string>

int main()
{
    std::string s1{"i lOVE yOU"};
    for(auto& c:s1){
        c=std::toupper(c);
    }
    std::cout<<s1<<std::endl;
    return 0;
}

std::string

C++标准库中可变长的字符序列

#include <string>
using std::string;
string s1{};
string s2 = s1;
string s3{"value"};
string s4{n,'c'); //n个连续字符组成的串

拷贝和初始化

string s5="Hello"; //拷贝初始化
string s6={"World"}; // 直接初始化

读写string对象

int main()
{
    string s1;
    cin>>s1;
    cout<<"Hello:"<<s1<<endl;
    cout <<s1.size()<<endl; // 字符串长度
    cout<< std::boolalpha<<s1.empty()<<endl; // 是否为空
    while( std::getline(cin,s1))// 获取一行
        cout<<s1<<endl;
    return 0;
}

命名空间

using 声明

using namespace ::name;

每个名字都要独立的using声明
头文件不应包含using声明(体积膨胀维护性差)