您的位置:首页 > 其它

std::string的reserve()和resize()函数的区别

2016-12-14 16:25 302 查看
参考:http://blog.csdn.net/freecloud_insky/article/details/47058597

分析以下代码,可见

#include <stdlib.h>
#include <stdio.h>
#include <string>

int main()
{
//1 string内存分配按照:(n*16-1)分配,n好像是次数
std::string str1 = "hello";
str1.reserve(20);

//2
std::string str2 = "hello";
str2.resize(2);

//3
std::string str3 = "hello";
str3.resize(10);

//4
std::string str4 = "hello";
str4.resize(10, 'b');

return 0;
}


进阶,实际应用

/*获取当前路径的父路径*/
string CFileUtils::get_parent_path(const string & path)
{
string file(path);
while (file.data()[file.length() - 1] == '\\' || file.data()[file.length() - 1] == '/')
{
file.resize(file.length() - 1);
}
int size = file.find_last_of('\\');
if (size > 0)
{
file.resize(size + 1);
}
return file;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: