C++ STL
2021-07-20 23:07
标签:set ack 容器 组件 turn 连接 自定义 nta 一半 ---恢复内容开始--- ---恢复内容结束--- C++ STL 标签:set ack 容器 组件 turn 连接 自定义 nta 一半 原文地址:https://www.cnblogs.com/c2h5ohlife/p/9516893.html
// 对静态数组
int c[] = { 1, 2, 3, 4 };
sort(c, c + 4);
// 对vector
vectorint> a;
sort(a.begin(), a.end());
// 自定义“小于”
bool comp(const student &a, const student &b){
return a.score b.score;
}
vector
#include
// 初始化
// 用数组初始化
int n[] = {1, 2, 3, 4, 5} ;
vectorint> a(n, n+5) ;
vectorint> a(&n[1], &n[4]) ;
// 转化成数组
float *buffer = new float[vecHeight.size()];
memcpy(buffer, &vecHeight[0], vecHeight.size()*sizeof(float));
// 其他
vectorint> a ; // 声明一个int型向量a
vectorint> a(10) ; // 声明一个初始大小为10的向量
vectorint> a(10, 1) ; // 声明一个初始大小为10且初始值都为1的向量
vectorint> b(a) ; // 声明并用向量a初始化向量b
vectorint> b(a.begin(), a.begin()+3) ; // 将a向量中从第0个到第2个(共3个)作为向量b的初始值
// 赋值
c.assign(n, elem); // 将n个elem的拷贝赋值给c
c.assign(a.begin(), a.end()); // 可以用来做a的切片
// 遍历
vectorint>::iterator t;
for(t=a.begin(); t!=a.end(); t++)
cout" " ;
// 基本操作
a.size(); // 获取向量中元素个数
c.capacity(); // 返回预分配的内存空间
a.empty(); // 是否为空
a.clear(); // 清空向量
a = b; // 复制
a == b; // 比较 // 也可以做大于小于等比较,取决于第一个不相等的元素
c.front(); // 传回第一个数据
// 插入
// 插入一个数到起始位置
a.insert(a.begin(), 1000);
// 插入多个
a.insert(a.begin(), 3, 1000);
b.insert(b.begin(), a.begin(), a.end());
// 删除
// 删除一个
b.erase(b.begin());
// 删除一段
b.erase(b.begin(), b.begin()+3);
// 删除并返回最后一个
c.pop_back()
// 交换
// a向量完全和b进行交换
b.swap(a);
// 二维向量
// 十行五列
vectorint> > b(10, vectorint>(5));
// 析构
c.~vector () // 销毁所有数据,释放内存
#include
#include string>
using namespace std;
// 构造
string s; // 生成一个空字符串s
string s(str); // 拷贝构造
string s = str;
string s(str, stridx); // 将字符串str内“始于位置stridx”的部分当作字符串的初值
string s(str, stridex, strlen); // 将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
string s(cstr) //将C字符串作为s的初值 char cstr[] = "good!";
string s(chars,chars_len) // 将C字符串前chars_len个字符作为字符串s的初值。
string s(num,c) //生成一个字符串,包含num个c字符
string s(str.begin(),str.end()) //以区间beg;end(不包含end)内的字符作为字符串s的初值
// 与C风格字符串转换
s.c_str(); // 生成一个const char*指针,指向以空字符终止的数组
s.copy(cstr, 3, 1); //拷贝3个字符,从1个字符开始(位置下标从0开始),把字符串的内容复制或写入既有的c_string或字符数组内 // unsafe
s.data(); // 与c_str()类似,但是返回的数组不以空字符终止。
// 基本操作
s.size(); s.length(); // 等效
s.empty();
s[1]; // 下标访问
// 迭代
for (string::iterator it = str.begin(); it != str.end(); it++)
{
cout endl;
}
// 交换
// 同vector
// 连接
s1 = s2 + s3;
// 查找
int index = s1.find("wbm", 0); //位置下标从0开始 找不到返回-1
//查找每一次wbm出现的下标
int offindex = s1.find("wbm", 0);
while (offindex != string::npos) //不等于-1
{
cout "offindex: " endl;
offindex++;
offindex = s1.find("wbm", offindex);
}
// 替换
s1.replace(offindex, 3, "WBM"); // 从offindex位置开始,替换3位
// 插入
s1.insert(offindex, "AAA");
// 切片、提取子集
s.substr(); // 返回s的全部内容
s.substr(11); // 从索引11往后的子串
s.substr(5,6); // 从索引5开始6个字符
// 删除
// 删除一个
string::iterator it = find(s1.begin(), s1.end(), ‘l‘);
s1.erase(it);
// 删除一片
s1.erase(s1.begin(), s1.end());
// 大小写转换
// transform(first,last,result,op);
transform(s1.begin(), s1.end(), s1.begin(), ::tolower);
transform(s1.begin(), s1.end(), s1.begin(), ::toupper);
// 销毁
s.~string(); // 销毁所有字符,释放内存
上一篇:今日头条--二维数组矩形输出
下一篇:C++多线程编程二