Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183362
  • 博文数量: 38
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-05 19:39
文章分类

全部博文(38)

文章存档

2011年(1)

2010年(2)

2009年(2)

2008年(33)

我的朋友

分类: C/C++

2008-04-12 14:56:14

嗯,今天自己对vector的复制有点小疑惑,怕和内存复制一样,于是自己写了一点代码检测了一下

运行环境 vc6.0
#include
#include

using namespace std;
int main(int arv, char* arc)
{
    vector bl;
    vector blcopy;

    char m[] = "Hello!";
    char n[] = "Linux!";
    char p[] = "microsoft!";

    bl.push_back(m);
    bl.push_back(n);
    bl.push_back(p);

    //说明vector支持复制,包括指针之间的复制
    blcopy = bl;

    vector::iterator iter = blcopy.begin();
    while ( iter != blcopy.end() )
    {
        cout << *iter << endl;
        iter ++;
    }

    return 0;
}

结果:
Hello!
Linux!
microsoft!
Press any key to continue

复制成功,将bl里面的数据全部传入blcopy
具体机理没研究,等啥时候再看看vector的复制部分吧!
阅读(8606) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

whurs2008-08-22 12:21:29

当时也就是想看看=可以进行赋值不? 其实最好还是使用标准库的copy()函数和copy_if()函数 “不要重复造车轮子”,这句话讲得很好!

chinaunix网友2008-08-10 09:48:25

你的结论我相信是对的,但是由你的测试程序不能得出结论。要想程序说明问题,你得在blcopy=bl;之后加入如下语句,bl.push_back(m); blcopy.pushback(n);再看输出结果。