兼容性:string类型与C++标准库中的其他函数和类型更加兼容。 vector <char*>的优势: 更高效:使用char*时,不需要创建string对象,可以节省内存和提高效率。 兼容C语言:char*类型在C语言中非常常见,如果你需要与C语言代码进行交互,使用char*会更加方便。 推荐的腾讯云相关产品: 腾讯云提供了一系列的云计算产品,可以帮助...
string vector: times - 10000 memory - 1752k VM - 828k char* vector: times - 10000 memory - 2340k VM - 1420k 可以看出,使用string以及vector或者静态分配数组,内存消耗是比较少的,多次new小内存导致内存消耗明显增多。
vector<char*> ch; vector<string> str; for(int i=0;i<5;i++) { char *c=fun1();//通过这个语句产生不同的字符串c ch.push_back(c); //输出发现,五个都是一样的数值,都是最后一个c的值 str.push_back(c); //正确的存储了 }
(3)string不用考虑内存释放和越界问题。string管理char *所分配的内存。每一次string的复制,取值都由string类负责维护,不用担心复制越界和取值越界等。 string转成char *,实用成员方法c_str()。char *转string,直接将char *传入string的构造方法中即可生成相应的string对象。 下面是string的初始化,赋值和取值操作 /...
1、string 1 构造、赋值 2 []、at 字符存取 3 字符串拼接 += append 4 查找和替换 5 比较 compare 6 子串 substr 7 插入 insert 删除 erase 8 字符串尾部插入 9 string 和 const char* 转换 案例 2、vector 容器 1 vector 容器基本概念 2 vector 的数据结构 3 接口 3、deque容器 1 deque 容器基本概...
using v_str = vector<string>;//vector支持下标访问,但是list不支持,vector中建议使用.at(num)方式进行下标访问。 using v_const_char = vector<const char *>; using l_str = list<string>; using d_str = deque<string>; using a_int10 = array<int,10>;//array数组必须指定大小。
1.string string 是basic_string<char> 的实现,在内存中是连续存放的.为了提高效率,都会有保留内存,如string s= "abcd",这时s使用的空间可能就是255,当string再次往s里面添加内容时不会再次分配内存.直到内容>255时才会再次申请内存,因此提高了它的性能.当内容>255时,string会先分配一个新内存,然后...
string字符串可以用< , >比较,但是char不能用这些比较,建议用strcmp()比较。 warning:建议使用string! 用string来初始化char string s("hello world"); // char *str=s;错误,不能直接用string初始化char const char *str=s.c_str(); cout<<str; ...
string和char指针的基本操作: 代码语言:javascript 复制 #include<string>#include<iostream>using namespace std;voidtest01(){string s1;constchar*str="aaa0";strings2(str);cout<<s1<<endl<<s2;//调用拷贝构造函数strings3(s2);//strings4(10,'a');cout<<s4;}intmain(){test01();return0;} ...
写C++程序时经常会遇到string、vector<char>和(const)char *之间的转换,本文介绍了其间的转换方法和注意事项。 1. string转vector<char> string所存储字符串不包含'\0',所以转为vector后,通过vector.data()直接输出会有问题,会往后找直到'\0',会出现乱码。所以应该在vector后手动再加上'\0',这样在vector.data...