顺序容器(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);怎么会只有一个构造函数输出,而且紧接着会有一个析构函数输出?
不懂,明天再搞
阅读(765) | 评论(0) | 转发(0) |