注册 登录
编程论坛 C++教室

能否讲解一二 不是太懂

yun313350095 发布于 2013-07-01 16:17, 538 次点击
#include<iostream>
#include<vector>
using namespace    std;
int main(void)
{
  vector<int>ivec;
  int ival;
  cout<<"Enter nummbe:"<<endl;
  while(cin>>ival)
    ivec.push_back(ival);

  int *p1=new int[ivec.size()];   //这个地方能用strlen(ivec)吗?

  int    *pt=p1;   //还有这个时什么意思啊 不是太明白是 pt指向p1吗
  for(vector<int>::iterator iter=ivec.begin();iter!=ivec.endl();++iter,++pt)
    *pt=*iter;

  delete [] p1;

  return 0;
}
3 回复
#2
qwe1681922013-07-01 19:40
1.strlen( xx)用于获取字符串长度,容器有获取自身长度的public:函数size()
2.p1指向new出来的空间,即new出来空间的内存地址,这里只不过是把内存地址赋值给pt,即pt与p1指向的是同一块内存空间
#3
lzj125302013-07-01 21:54
1、String类的strlen()是用于字符串的长度获取,而vector类和string是不同的不能用这个函数。只能使用自身的成员函数。
2、p1是指针,指向堆内存。而pt同样声明为指针。 int *pt=p1;等效于 int *pt;pt=p1;那么这样就是把p1指向的地址复制给pt。记pt和p1指向同一个内存地址。
#4
阿扣、2013-07-02 07:49
溜达溜达
1