使用new动态分配数组,需要时时刻刻记住delete,很容易造成memory leak。使用vector和string则消除了这个负担,因为它们有自己的内存管理,在它们的析构函数中会自动释放内存。 通常情况下用vector代替动态数组,如果要存储的元素类型是字符类型时使用string。 所有适合于序列容器的STL算法,vector和string都可以使用。所以使用vect...
string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列。 一、标准库类型string 1.定义和初始化string对象:初始化string对象的方式有 string s1 默认初始化,s1是一个空串string s2(s1) s2是s1的副本 string s2=s1 等价于s2(s1),s2是s1的副本 string s3...
由于都是线性结构,vector,list,string都有异曲同工之妙。 构造函数 //基本声明strings();//生成一个空字符串ss.~string()//销毁所有字符,释放内存strings="this is a string."//完全拷贝和部分拷贝strings(str)//拷贝构造函数 生成str的复制品string(const string& str)strings(beg,end)//以区间beg;end(不...
vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 vector<string>是字符串容器 比如vector<string> s[2] 这句话的意思就是定义了一个字符串容器,里面可以存放2个字符串 而且string只是定义一个字符串。 类似的还有vec...
【c++】-vector和string的常见用法 1、字符串匹配find 2、字母小写转大写 3、查找 4、二维vector的初始化 5、稳定排序 6、接收空格输入的字符串 7、删除某段位置的数据 8、重写比较函数进行排序 9、删除重复元素 10、头部插入
这里需要着重讲的有一个operator=,而其他的与上一篇string差不多。 vector<T>& operator=(vector<T>v) 这里我们要注意,v是传值引用,可以说v是传参的一种拷贝构造,v不会影响到原来的参数。 所以我们可以直接将 v与this经行交换,而在离开函数时v会自动调用析构函数。
string和vector易错点 1.注意点:std::string 的输出是根据记录的长度而不是 '\0' 来判断结束的,想对string一个字符一个字符的复制,只能+=,不能a[i]=b[i]; string a=""; string b="aaa"; for(i=0;i<b.size();i++){ a+=b[i]; //a[i]=b[i] 这样是错的 } 2.vector 容器里: strs...
string的基本赋值操作 代码语言:javascript 代码运行次数:0 运行 AI代码解释 #include<string>#include<iostream>using namespace std;voidtest01(){string s1;s1="hello C++";string s2;s2=s1;string s3;s3='a';string s4;s4.assign("hello c++");string s5;s5.assign("hello c++",5);//前5个赋值给s5...
vector <string*>让我困惑 在这个问答内容中,"vector<string*>"是一个C++中的容器类模板,用于存储和管理动态大小的数组。它是C++标准库中的一部分,并且是STL(Standard Template Library)的一个重要组成部分。 在这个问答内容中,"vector<string*>"表示一个vector容器,其中元素为string指针的数组。这种表示方式可能会...
string 和 vector 初探,标准库类型stringstring表示可变长的字符序列。是C++标准库类型的一部分,拥有很多优秀的性能。定义string对象时如未人为初始化编译器会默认初始化为空字符串。string对象的初始化有非常多种。大体分为两类:拷贝初始化和直接初始化。全部用等号(=