锻件行业选型与技术解析:智能化转型与精密制造
2026/11/2 7:19:46
reverse、resize
void test1() { string a1("111111111111111111111111111111"); string::iterator a11 = a1.begin(); cout << a1.size() << endl; cout << a1.capacity() << endl; //在知道该开多少空间的时候解决一直开空间造成的效率低问题 a1.reserve(100); cout << a1.size() << endl; cout << a1.capacity() << endl; for (auto a : a1) { printf("%c", a); } printf("\n"); //如果传的参数小于size会删数据 //只改变size不改变capacity a1.resize(10, 'x'); cout << a1.size() << endl; cout << a1.capacity() << endl; for (auto a : a1) { printf("%c", a); } printf("\n"); }[]与at、append、assign
//区别是对于[]的重载可以对静态string进行操作 //[]越界直接assert 而at是抛异常容易调试 printf("%c\n", a1[1]); printf("%c", a1.at(1)); a1.append("abd"); for (auto a : a1) { printf("%c", a); } printf("\n"); //不管原先数组是什么 直接把数组改变成想要的内容比如5个x a1.assign(5, 'x'); cout << a1.size() << endl; cout << a1.capacity() << endl; for (auto a : a1) { printf("%c", a); } printf("\n");insert、erase
//在某个位置插入删除 可以传iterator a1.insert(1, "abc"); for (auto a : a1) { printf("%c", a); } printf("\n"); a1.erase(2); for (auto a : a1) { printf("%c", a); } printf("\n");shrink_to_fit
//把capacity尽量缩到跟size差不多 a1.shrink_to_fit(); cout << a1.size() << endl;//2 cout << a1.capacity() << endl;//15一些笔记