C++语法总结(自用)

STL容器

vector:

1.倒序遍历:

for(auto it=ans.end()-1;it!=ans.begin()-1;it--)//由于左闭右开
{
    cout<<*it;
}

for(auto it=ans.rbegin();it!=ans.rend();it++)//加r表示逆向遍历
{
	cout<<*it;
}

2.返回数组中最大元素:

*max_element(maxn.begin(),maxn.end());

3.二维数组的遍历

 for(auto it1=grid.begin();it1!=grid.end();it1++)
{
    for(auto it2=it1->begin();it2!=it1->end();it2++)
    {
        cout<<*it2;
    }
}
return ans;

map:

1.遍历方法:

unordered_map<KeyType, ValueType> myMap;

for (auto it = myMap.begin(); it != myMap.end(); ++it) {
    // it->first 是键,it->second 是值
    // 使用 (*it).first 和 (*it).second 也是可以的
}

for (const auto& pair : myMap) {
    // pair.first 是键,pair.second 是值
}

2.查找键:

map<int,int> mp;
auto it=mp.find(key); //查找的是值等于key的键对应的迭代器
//若要查找值,只能遍历键

stack:

stack<int> s; //定义一个整数型的栈
s.push(5); //将5压入栈
s.empty(); //判断空
s.size(); //计算大小
int x=s.top(): //访问栈顶
s.pop(); //出栈

Queue:

  1. push(): 将元素 val 添加到队列的末尾。

  2. pop(): 删除队列的第一个元素(即队首元素)。

  3. front(): 返回队列的第一个元素的引用。如果队列为空,则行为未定义。

  4. back(): 返回队列的最后一个元素的引用。如果队列为空,则行为未定义。

  5. empty(): 检查队列是否为空。如果队列为空,则返回 true,否则返回 false

  6. size(): 返回队列中的元素数量。

基本功能:

1.四舍五入,精确到几位:

round函数是将一个小数四舍五入取整,向下取整将round改为int,int自动将小数抹去,向上取整再+1即可。

double dRawData = 3.14526;
double dValidData1 = round(dRawData * 100) / 100; //小数点保留几位,就乘几个0
double dValidData2 = int(dRawData * 100) / 100; //向下取整
double dValidData3 = (int(dRawData * 100)+1) / 100; //向上取整

输出为:

dRawData=3.14526
dValidData1=3.15
dValidData2=3.14
dValidData3=3.15

2.类型转换:

//字符串转整数:
string str = "123";
int num = stoi(str);

//整数转字符串:
int num = 123;
string str = to_string(num);



//字符串转小数
string str = "3.14";
float num = stof(str);

//小数转字符串
float num = 3.14;
string str = to_string(num);

文件读取方法:

1.c++读取风格:

读取文件:

ifstream inputfile("file.txt");

if (!inputfile.is_open()) {
    std::cerr << "Failed to open file.txt" << std::endl;
    return 1;
}

char c;
while (inputfile.get(c)) {
    std::cout << c;
}

inputfile.close();

方法扩充:

ifstream inputfile("file.txt");
//等价于:
//ifstream inputfile;
//inputfile.open("file.txt");


char ch;
inputfile.get(ch);
//等价于:
//char ch=inputfile.get();

//其他读取文件函数:
//读取一行,读取失败返回-1,可用while(getline())
string line;
getline(inputfile, line);

//读取指定字节大小的数据
int buffer_size;
char buffer[buffer_size];
inputfile.read(buffer, buffer_size);

写文件:

ofstream outputFile("output.txt"); // 创建输出文件流对象并打开文件
//默认为写入模式,原有内容会被覆盖,追加模式和写入模式:
//ofstream outputFile("output.txt",ios::app);
//ofstream outputFile("output.txt",ios::trunc);

if (!outputFile.is_open()) {
    cerr << "Failed to open output.txt" <<endl;
    return 1;
}
outputFile << "Hello, World!" <<endl; // 向文件写入数据,endl会自动换行,下次输入在下一行,不加则可以直接追加
outputFile.close();

2.main()函数的参数:

int main(int argc, char *argv[])
int main(int argc, char **argv)

其中 argc 表示命令行参数的数量(包括程序名本身),argv 是一个指向指针数组的指针,其中每个指针指向一个表示命令行参数的 C 字符串。argv[0] 是程序名,argv[1]argv[argc-1] 是命令行参数。

例如,如果运行程序时输入了命令 ./myprogram arg1 arg2,那么 argc 的值将为 3,argv[0] 的值将是字符串 "./myprogram",argv[1] 的值将是字符串 "arg1",argv[2] 的值将是字符串 "arg2"。

带参数的 main() 函数常用于接受用户输入的命令行参数,以便根据输入的参数执行不同的操作或者控制程序的行为。

注意事项:

1.对字符串的索引返回结果是字符而不是字符串,下述代码会导致无法插入。

vector<string> ans;
string a="abc";
ans.push_back(a[0]);
cout<<ans[0];

//用法:string(size_t n, char c):使用字符 c 初始化一个长度为 n 的字符串。
ans.push_back(string(1, s[0]));

2.想拼接,半天查不出问题

for(int i=0;i<a1;i++) ans+="B";

for(int i=0;i<a1;i++) ans+"B";

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值