#include
using namespace std;
int main() {
vector<int> vi; //定义一个存入整形数据的容器.
}
vector容器可以存放C语言的基本数据类型,还可以存放结构体,类. 链表不常用
经验证, 可以g++编译运行出结果
#include
#include
#include
#include // string需要包含的头文件
#include // vector 需要 包含的头文件
#include // sort 需要包含的头文件
using namespace std;
int main() {
char height=0;
vector<int> vheight;
while(1){
printf("请输入身高(0-结束):");
scanf("%d", &height);
if(height==0) break;
vheight.push_back(height); // 把数据追加至容器中, 类似于python中的append
}
for(int ii=0; ii<vheight.size(); ii++){
printf("vheight[%d] = %d\n", ii, vheight[ii]);
}
sort(vheight.begin(), vheight.end()); // 升序排列
for(int ii=0; ii<vheight.size(); ii++){
printf("vheight[%d] = %d\n", ii, vheight[ii]);
}
vheight.clear(); // 清空容器.
}
代码解释:
void push_back(const T& c) 成员函数,向容器尾部追加一个元素x, 注意x是一个引用,要用的变量的名称,不是变量的地址,
int size() 成员函数: 返回容器中数据的元素总数
像数组一样访问容器.采用数据下标的方式来访问容器内部的元素.
iterator begin() :返回容器的头指针, 指向第一个元素
iterator end(): 返回容器的尾指针, 指向最后一个元素的下一个位置
sort() 函数是对容器中的元素进行排序.
void clear(): 对容器进行清空元素的操作. 1: 容器被声明时,本身就是空的,2: 容器是类,有析构函数,将会自动释放内存资源, 这里手动清空了容器的元素.
在实际开发中, 最常用的是用来存入结构体
#include
#include
#include
#include
#include // vector 需要的包含的头文件
#include
using namespace std;
struct st_girl{
char name[50];
int age;
};
int main() {
struct st_girl stgirl; // 数据结构
vector<struct st_girl> vgirl; // 容器
strcpy(stgirl.name, "张大"), stgirl.age=19;
vgirl.push_back(stgirl);
strcpy(stgirl.name, "张二"), stgirl.age=20;
vgirl.push_back(stgirl);
strcpy(stgirl.name, "张三"), stgirl.age=21;
vgirl.insert(vgirl.begin()+1, strgirl); // 在第二个位置之前插入一个元素
//使用下标访问容器中的数据
for(int ii=0; ii<vgirl.size(); ii++){
printf("vgirl[%d].name=%s, vgirl[%d].age=%d\n", ii, vgirl[ii].name, ii, vgirl[ii].age);
}
vgirl.erase(vgirl.begin()+2); // 删除第3个位置上的元素.
vgirl.pop_back(); //删除最后一个元素
printf("******************\n");
// 把容器中的记录复制到结构体中
for(int ii=0; ii<vgirl.size(); ii++){
memcpy(&stgirl, &vgirl[ii], sizeof(struct st_girl));
printf("stgirl.name=%s, stgirl.age=%d\n", stgirl.name, stgirl.age);
}
vgirl.clear(); // 清空全部元素
return 0;
}
iterator begin()
:返回容器的头指针, 指向第一个元素iterator end()
: 返回容器的尾指针, 指向最后一个元素的下一个位置iterator 迭代器, python中的迭代器关键字一样的
void push_back()
: 追加元素iterator insert(iterator it, const T& x)
: 向容器中指定位置前插入一个元素xiterator erase(iterator it)
: 容器中删除指定位置(it)的元素void pop_back();
: //删除最后一个元素void clear()
: 清空元素bool empty()
: 判断容器是否为空int size()
: 返回容器中元素的个数