C++简单问题(高手进急)
#include<iostream>#include<vector>#include<string>usingnamespacestd;intmain(){vector<...
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
vector<string> svec;
string str;
cout<<"Enter string:(Ctrl+Z to enl)"<<endl;
while(cin>>str)
svec.push_back(str);
char **parr=new char*[svec.size()];
size_t ix=0;
for(vector<string>::iterator iter=svec.begin();
iter!=svec.end();++iter,++ix){
char *p=new char[(*iter).size()+1];
strcpy(p,(*iter).c_str());
parr[ix]=p;
}
for(ix=0;ix!=svec.size();++ix)
delete [] parr[ix];
delete [] parr;
return 0;
}
//////////////////////////////////////////////////
char *p=new char[(*iter).size()+1];这句话(*iter)指针有什么用,size()+1为什么要加1
strcpy(p,(*iter).c_str());这句话(*iter)又为什么要用指针。 展开
#include<vector>
#include<string>
using namespace std;
int main()
{
vector<string> svec;
string str;
cout<<"Enter string:(Ctrl+Z to enl)"<<endl;
while(cin>>str)
svec.push_back(str);
char **parr=new char*[svec.size()];
size_t ix=0;
for(vector<string>::iterator iter=svec.begin();
iter!=svec.end();++iter,++ix){
char *p=new char[(*iter).size()+1];
strcpy(p,(*iter).c_str());
parr[ix]=p;
}
for(ix=0;ix!=svec.size();++ix)
delete [] parr[ix];
delete [] parr;
return 0;
}
//////////////////////////////////////////////////
char *p=new char[(*iter).size()+1];这句话(*iter)指针有什么用,size()+1为什么要加1
strcpy(p,(*iter).c_str());这句话(*iter)又为什么要用指针。 展开
2个回答
展开全部
for(vector<string>::iterator iter=svec.begin();
你只须明白这句话的意思就可以了 就知道*iter是什么意思了
char *p=new char[(*iter).size()+1]; 在这是内存分配
容器第1个字符的 大小加1;
strcpy(p,(*iter).c_str()); 至于为什么要用指针 你就应该多去看点书吧
迭代器是遍历容器
那么*iter指向容器的第一个元素 把他赋值给p ++iter ++ix 也就起遍历作用
你只须明白这句话的意思就可以了 就知道*iter是什么意思了
char *p=new char[(*iter).size()+1]; 在这是内存分配
容器第1个字符的 大小加1;
strcpy(p,(*iter).c_str()); 至于为什么要用指针 你就应该多去看点书吧
迭代器是遍历容器
那么*iter指向容器的第一个元素 把他赋值给p ++iter ++ix 也就起遍历作用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询