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

来源:互联网 发布:无需备案的域名 编辑:程序博客网 时间:2024/06/05 07:39

参考: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);//2std::string str2 = "hello";str2.resize(2);//3std::string str3 = "hello";str3.resize(10);//4std::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;}



0 0
原创粉丝点击