C++学习笔记

发布时间 : 星期五 文章C++学习笔记更新完毕开始阅读

c.rend() 传回一个逆向队列的最后一个数据的下一个位置。 c.reserve() 保留适当的容量

c.begin() 返回指向容器第一个元素的迭代器(相当于返回指针中的首地址似的) c.end() 返回指向容器最后一个元素的迭代器

vector的初始化

vector v(100);定义v为一个能容纳100个int型的容器,可以像数组一样,用下标访问 V[3];v.resize(120); 使v得大小变为120,重置它的大小。(定义的时候不一定要声明容器的大小)

你可以在定义容器时为它赋初值,定义一个容纳100个int型数据的容器,初值赋为0 vector vecMyHouse(100,0);

创建一个包含500个Widget类型数据的vector,并且都初始化为0:

vector vWidgets(500, Widget(0));

访问vector中的数据的方法: 1、 vector::at()

2、 vector::operator[]

operator[]主要是为了与C语言进行兼容。它可以像C语言数组一样操作。但at()是我们的首选,因为at()进行了边界检查,如果访问超过了vector的范围,将抛出一个例外

容器之间,可以用=号,直接赋值

迭代器与容器的关系:

对于容器,使用迭代器操作容器中对应位置的值,当迭代器指向了容器中的某位置,则可以使用 * 加迭代器操作该位置了

迭代器的定义方式:

std::vector myvec;//定义容器myvec std::vector::iterator p;//定义迭代器p p=myvec.begin();//p指向myvec容器的首个元素 P++;//通过自加,自减之类,可以指向下一个元素

用vector定义二维数组:

链表:动态链表

三个指针head,p1,p2(一个用来不断开辟内存,接受外来存储量)该链表只有存储功能,无插入,删除等功能

#include using namespace std; struct student { };

int data; student *next;

int n;

struct student * create() { }

int main() {

} free(p);

system(\); return 0; student *p;

p = (student *)malloc(sizeof(student)); p=create(); while (p != NULL) {

cout << p->data << endl; p = p->next; n = 0;

struct student *head = NULL; struct student *p1, *p2;

p1 = p2 = (struct student *)malloc(sizeof(struct student)); cout << \请输入数据,注意:当输入为0时,表示输入结束\ << endl; cin >> p1->data; while (p1->data) { }

p2->next = NULL; return (head);

++n; if (n == 1)

head = p1; p2 ->next= p1; else p2 = p1;

p1 = (struct student *)malloc(sizeof(struct student)); cin >> p1->data; p2->next = p1; p2 = p1;

联系合同范文客服:xxxxx#qq.com(#替换为@)