OJ系统的注意事项

  1. Presentation Error格式错误,提交的代码尽量不要有注释;或者有多余的空格,格式不正确。
  2. 字符串用char来表示时,遇到空格停止,可以多声明几个char数组。
  3. 数字转ASCII码  char(number)
  4. 保留小数的问题
    #include<iostream>
    #include<iomanip>
    using namespace std;
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<小数;
  5. c++输入多个字符串,利用cin.getline(char数组,字符数);//利用cin.get(数组,字符数)莫名其妙有问题,无法再次输入。关于输入与输出,多用C++的特性。 如果前面用过cin了,在使用 getline时,记得先cin.ignore()
    ​
    #include<string>
    
    string a;
    
    getline(cin,a);
    
    ​
  6. 要是忽略一行 cin.ignore(10000,'n');忽略单个字符cin.ignore();
  7. char数组接受了一个字符串,for循环截止的条件是shuzu[i]!='\0'(注意:仅限于char 数组);
  8. ASCII的大写字母从65开始到90。'A'--'Z',小写字母是97-122。有意义的字符是从33开始的。阿拉伯数字是48-57(0-9);
  9. 单个字符转换为数字的方法是int(char[i]-'0')//string[i]-'0';
  10. 全排列问题。

    #include<algorithm>
    int a[];
    
    sort(a,a+a.length);
    
    do{
    
    cout<<a<<endl;
    
    }while(next_permutation(a,a+a.length));
  11. ​​​​​​保留有效数字的方法: 
    ​
    ​#include<iomanip>   
    cout<<setfill('0')<<setw(2)<<数字;//这样1会变为01​​​​​​
    
    ​
    
    ​
  12.    vector相关

     模板排序的方法

#include<algorithm>

vector<int>a;

sort(a.begin(),a.end());

     vector的删除和插入

vector全部清除
vector<int>a;
vector<int>::iterator it;
a.clear();
//vector的定位置删除
指针型:

for (it = a.begin(); it != a.end();)//注意分号
{
	if (*it == 要找的数字)
    {
	    it = a.erase(it);
    }   //删除元素,返回值指向已删除元素的下一个位置
	else
	{
	    ++it;
    }    //指向下一个位置
}

普通循环型:
for(...)
{
    a.earse(a.begin()+i);
    i--;//注意i--
}				

    vector的插入操作

a.insert(a.begin()+i,插入的值);

 

12.全局变量不要去修改,例如K--之类。

13.不知道输入何时结束,那么while(cin>>变量)//交给OJ,CTRL+Z

14.部分字符串操作:头文件#include<cctype>

                         bool类型,isdigit('1')//判断字符是否是数字,若为数字返回真

                         bool类型   isalpha('a')//判断字符是否是字母,若为字母返回真

                         bool类型 islower('a')//是小写字母吗?

                         bool 类型 isupper('A')//是大写字母吗?

char返回值类型 char c=toupper('q');//c=Q;

char 返回值类型 cahr c=tolower('A');//c=a;

15 string的substr的第一个位置是起点,第二个数字是要输出几位。

16.字符串转数字,或者数字转字符串的方法,

#include<sstream>//字符串转数字,记得clear();
stringstream ss;
int a=0; string str="14";
ss<<str;ss>>a;
ss.clear();
反之亦然
_______________________________________________________________________
stringstream ss(str);
ss>>num;
ss.clear();

17.字符替换的方法 

string a;a.replace(替换的位置,要替换多少位,替换的内容。)

a.replace(i-1, 4, tihuanb);

18.字符串插入的方法:

a.insert(插入位置,插入内容);

a.insert(i, "0");

例如a="1",插入后为“01”;

19.对字符串排序,

#include<algorithm>
string a="iodsajo";
sort(a.begin(),a.end());

20.字符串的查找操作:

	
string::size_type position;
position = 字符串.find(要找的字符串);
if (position!=字符串.npos)
{
   //找到了
}

21.map的用法

#include<map>
map<string, string>key;
map<string, string>::iterator it;
插入的时候类似于数组的插入,但这样会覆盖value的值
map的查找
for (int i = 0; i < m; i++)
	{
		it = key.find(要找的值);
		if (it != key.end())
		{

			cout <<"找到了,它是"<< it->second << endl;

		}
		else
		{
			cout << "没找到" << endl;
		}
 
	}

22.sort的降序排列

bool compare(int a,int b)
{
    return a>b;   //降序排列,如果改为return a<b,则为升序
}
sort(a,a+n,compare);

23.数字转为字符串

#include<string>
string a=to_string(b);//C++11标准

24.

截取子串

       s.substr(pos, n)    截取s中从pos开始(包括0)的n个字符的子串,并返回

       s.substr(pos)        截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回。

25.

 替换子串

       s.replace(pos, n, s1)    用s1替换s中从pos开始(包括0)的n个字符的子串

26.

查找子串

       s.find(s1)         查找s中第一次出现s1的位置,并返回(包括0)

       s.rfind(s1)        查找s中最后次出现s1的位置,并返回(包括0)

       s.find_first_of(s1)       查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)

       s.find_last_of(s1)       查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)

       s.fin_first_not_of(s1)         查找s中第一个不属于s1中的字符的位置,并返回(包括0)

       s.fin_last_not_of(s1)         查找s中最后一个不属于s1中的字符的位置,并返回(包括0)

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值