刚看了你的一个帖子
感觉lz有几个误区呢,不知道是否正确?
1、至于那个const错误。因为c_str通常返回的是string类中的一块数据去,是不可以被修改的,所以可能返回的是const char*。如果需要你那样的形式,要么1、重新分配内存,再拷贝过去,返回,要注意内存释放;2、强制转换过去(需要c++强制转换),但不建议
2、stl算法中,通常使用的是传值操作,你的这种返回本身有问题,很难用在stl算法上。而且返回类型通常是type_name,也就是string.[]对应的是iterator.
3、即使某些算法可以使用,如果想如下操作,如何处理?
vectInstans[12] = xxxxxx;
这个xxxxx,在当前定义下,是无法传回去的
4、修改接口如下
vector <string>::iterator& operator[]{
.........
}