算法刷题常用

字符串

  • 字符串长度
#include 

unsigned int strlen(const char *);

strlen计算长度时不计\0.sizeof()计算'\0'

由于字符串以'\0'结尾,定义一个含有10个字符的字符串束腰一个11元素的一维字符数组

  • C++ String copy
string str1 = “12345”;
string str2;
1.str2 = str1;
2.str2.assign(str1);
3.str2=new string(str1.c_str()).
  • 反转C++ String
 1. 使用vector
#include 
#include 
 str=reverse(str2.begin(),str2.end());



 2. 自己写
void reverseStr(string &str) {
    int first = 0;
//这里可以看出vector string的size不包含\0
    int last = str.size()-1;
    
    while(first
  • 字符串操作
    • 子串
      str = str.substr(0,str.size()-2);
  • int转字符串
    to_string(int)

容器

  • C++容器长度a.size()(返回字符数,STL容器都有这个方法)
  • pop_back() 去掉最后一个
  1. 二维数组容器
vector > v;
for(int i=0;i<10;++i)
{
 vector temp;  ///定义一个一维的  也就是 二维的元素类型,二维可以看做 一维的一维数组。
for(int j=0;j<5;++j)
{
    temp.push_back(i*j); 
}
    v.push_back(temp);  ///将一维的压入二维中
}

或者
 vector< vector > (length-1,vector(length-1,0));
  • 所有容器
    http://blog.chinaunix.net/uid-21411227-id-1826905.html

输入输出

  • 输入一个c数组
int n=0;
printf("please enter the number:\n");
scanf("%d",&n);
  
int *number=new int[n];
  
for(int i=0;i
  • 输入一个容器
std::vector v;
for (double d; std::cin >> d; v.push_back(d)) {}

你可能感兴趣的:(算法刷题常用)