算法竞赛常见问题

算法竞赛常见问题

CSDN平台可能出现排版问题或者图片缺失,请访问duke486.github.io

不知道传入多少行、多少个字符

#include <iostream>
using namespace std;
int main() {
    // 从标准输入读取一行数据直到结束
    string line;
    while (getline(cin, line)) {
        cout << line << endl;
    }

    // 读取一个字符直到结束
    char c;
    while ((c = getchar()) != EOF) {
        cout << c;
    }

    return 0;
}

一行传入n个数字存为数组

#include<iostream>
#include<cmath>
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<sstream>
using namespace std;

int main() {
	vector<int>arr;
	string str;
	getline(cin,str);
	stringstream ss(str);//将字符串转化为流

	int element;//读取数字,依次加入数组
	while (ss>>element)
	{
		arr.push_back(element);
	}

	sort(arr.begin(), arr.end());//排序并且输出
	for (int i = 0; i < arr.size(); i++) {
		cout << arr[i] << ' ';
	}
	return 0;
}

获取字符串长度

#include<vector>
#include<string>

string a="xxx";
cout<<a.size();

在代码中定义多行字符串

string =R"(内容
    		内容)";

数组去重复、升序

#include<algorithm>

sort(vec.begin(), vec.end());//排序
//如果对普通数组,sort(arr, arr + sizeof(arr) / sizeof(arr[0]));

auto it = unique(vec.begin(), vec.end());
	//unique只能识别相邻的重复元素!

	/*把重复项挪到尾部并删除,但这不会进行排序。
	it 是 unique() 函数的返回值,它指向第一个重复元素的迭代器。*/
vec.erase(it, vec.end());

阶乘

int factorial(int n) {
  if (n == 0) {
    return 1;
  } else {
    return n * factorial(n - 1);
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值