LeetCode技巧(C++)

/*****************************************************************************/
/**** STRING:字符串 ****/
/*****************************************************************************/
int i = atoi(cstr);         //const char* => int
int i = stoi(str);          //string => int
int l = stol(str);          //string => long
string str = to_string(i);  //int、long => string
strcpy(cstr, str.c_str());  //string => char*。必须采用strcpy方式,不能直接赋值
str.find('a') != str.npos               //找不到指定字符
str.substr(index, length);              //length + index > str.length()或者不带length参数时,到字符串末位
str.replace(index, length, "string");   //用"string"替换自index位置开始的连续length个字符
std::reverse(str.begin(), str.end());   //反转字符串


/*****************************************************************************/
/**** VECTOR:动态数组 ****/
/*****************************************************************************/
auto i = vect.begin();
auto i = vect.end();
auto i = vect.rbegin();
auto i = vect.rend();
int i = vect.size();
vect.push_back();
vect.pop_back();
vect.empty();
auto maxElementIterator = max_element(vect.begin(), vect.end());
auto minElementIterator = min_element(vect.begin(), vect.end());
erase()会改变迭代器,慎用


/*****************************************************************************/
/***** MAP:键值对 ****/
/*****************************************************************************/
intStrMap.push_back(pair (1, str));    //插入元素
int tmpFirst = elementIterator->first;              //键
string tmpSecond = elementIterator->second;         //值


/*****************************************************************************/
/***** SET:集合 ****/
/*****************************************************************************/
set_intersection            //交集
set_union                   //并集
set_difference              //差集
set_symeetric_difference    //对称差集
A.empty();
set_union(A.begin, A.end(), B.begin(), B.end(), inserter(C, C.begin()));    //A、B的并集元素放在C里


/*****************************************************************************/
/***** LIST:既能当栈用,又能当队列用,一招在手,天下我有 ****/
/*****************************************************************************/
numList.empty();
numList.front();            //首元素
numList.back();             //尾元素
numList.push_front();       //头部插入
numList.pop_front();        //头部删除
numList.push_back();        //尾部插入
numList.pop_back();         //尾部删除
numList.sort();             //链表排序
numList.size();             //链表大小
numList.reverse();          //链表翻转,我没用过
numList.unique();           //链表删除重复元素,我没用过
numList.swap(anotherList);  //交换链表,没用过

 

 

你可能感兴趣的:(编程)