Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299040
  • 博文数量: 148
  • 博客积分: 4365
  • 博客等级: 上校
  • 技术积分: 1566
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-05 21:38
文章分类
文章存档

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

分类: C/C++

2008-07-07 23:11:30

顺序容器(Sequential,Container)有六种类型,vector,list,deque,stack,queue,priority_queue.
(1)定义一个顺序容器
SC c; 定义一个空的顺序容器,里面没有任何东西,需要往里插入元素。
SC c(c1); 定义一个顺序容器,其所含元素与c1相同,c与c1的容器类型与所含元素类型必须相同。
SC c(b,e);定义一个顺序容器,其所含元素为迭代器b,e之间的元素。
SC c(n,t);定义一个顺序容器,其含有n个元素t。
SC c(n);定义一个顺序容器,其含有n个元素,元素的初始值为系统默认,int为0,string为空,如果为类类型元素,则调用其默认构造函数对元素进行初始化。
int等这些build-in类型就不用说了,试验一下类类型的

#include <iostream>
#include <vector>
#include <stdio.h>
#include <stdexcept>
#include <exception>
#include <string>

#include "myclass.h"

using namespace std;


int main(void) {
    vector<myclass> ivec(5);
    vector<myclass>::iterator iter=ivec.begin();
    for(;iter!=ivec.end();iter++)
        cout<<" address ivec[i] : "<<&(*iter)<<endl;

    ivec.clear();
    cout<<"test ayyay"<<endl;
    myclass marray[5];
//    cout<<"test push_back"<
//    myclass b;

//    ivec.push_back(b);

    cout<<"end in main"<<endl;
}

结果为:
in myclass construct
in myclass deconstruct
  address ivec[i] : 0x3d24d0
  address ivec[i] : 0x3d24d1
  address ivec[i] : 0x3d24d2
  address ivec[i] : 0x3d24d3
  address ivec[i] : 0x3d24d4
in myclass deconstruct
in myclass deconstruct
in myclass deconstruct
in myclass deconstruct
in myclass deconstruct
test ayyay
in myclass construct
in myclass construct
in myclass construct
in myclass construct
in myclass construct
end in main
in myclass deconstruct
in myclass deconstruct
in myclass deconstruct
in myclass deconstruct
in myclass deconstruct
出现问题:
vector<myclass> ivec(5);怎么会只有一个构造函数输出,而且紧接着会有一个析构函数输出?
不懂,明天再搞

阅读(763) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~