/*****************************************************************************/
/**** 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();
size_t i = vect.size();
vect.push_back();
vect.pop_back();
vect.empty();
auto maxIter = max_element(vect.begin(), vect.end()); // 找最大元素
auto minIter = min_element(vect.begin(), vect.end()); // 找最小元素
iter = vect.erase(iter); // 移除当前元素,使当前迭代器失效,返回值即是新的迭代器地址;在迭代器循环中要小心
A.insert(A.end(), B.begin(), B.end()); // 拼接A、B
set_union(A.begin, A.end(), B.begin(), B.end(), back_inserter(C)); // A、B的并集元素放在C里,放在尾部
set_union(A.begin, A.end(), B.begin(), B.end(), back_inserter(C), inserter(C, C.begin()),
[](const auto &lhs, const auto &rhs) { return lhs < rhs; }); // A、B的并集元素放在C里,放在头部,自定义了compare函数
set_intersection // 交集,与set_union使用方法类似
set_difference // 差集(A减去交集),与set_union使用方法类似
set_symeetric_difference // 对称差集(并集减去交集),与set_union使用方法类似
/*****************************************************************************/
/***** MAP:键值对 ****/
/*****************************************************************************/
map.push_back(move(make_pair(key, value))); //插入元素
const auto key = iter->first; // 键
const auto value = iter->second; // 值
/*****************************************************************************/
/***** SET:集合 ****/
/*****************************************************************************/
A.merge(B); // 求并集,set_union只可用于带有push_back的容器,所以不能用于set;
A.insert(B.begin(), B.end()); // 求并集
A.empty();
/*****************************************************************************/
/***** LIST:既能当栈用,又能当队列用,一招在手,天下我有 ****/
/*****************************************************************************/
A.empty();
A.front(); //首元素
A.back(); //尾元素
A.push_front(); //头部插入
A.pop_front(); //头部删除
A.push_back(); //尾部插入
A.pop_back(); //尾部删除
A.sort(); //链表排序
A.size(); //链表大小
A.reverse(); //链表翻转,我没用过
A.unique(); //链表删除重复元素,我没用过
A.swap(anotherList); //交换链表,没用过
常用的STL方法
最新推荐文章于 2023-04-16 16:39:26 发布