Vector用法,新手专用;

#include <iostream>
#include <string>
#include <vector>
#include <list>
using namespace std;

class A
{
public:
	int id;
	int leng;
	int what;
};

typedef struct Mystruct//这个么用到;
{
	int s_id;
	int s_leng;
	int s_what;
};
int main()
{
	//下面的所有内容 calss A 都可以换成  struct  Mystruct
	//  类型可以是 int  string  当然也可以是构造类型struct
	vector<A>vec;//  创建一个容器。容器的类型是A
	A a;
	a.id = 10;
	a.leng = 20;
	a.what = 30;
	vec.push_back(a);//把 对象a 放进容器,当然 a的类型必须要容器的类型想同
					//那么 a的内容就已经到了vec里面了

	vector<A>::iterator it = vec.begin(); //当然 it 是一个迭代器是一个对象,什么叫做迭代器呢,  迭代器是一个复杂指针类型的。
										  //

	//当然这个循环只会的打印出一个10出来  vec.end()并不是最后一个值,而是最后一个值的,在后面一个
	for (it; it != vec.end();++it)
	{
		cout << (*it).id << endl;   //10
		cout << it->leng << endl;   //20这里也可以用指针
	}

	//	vector<Mystruct>s_vec(vec);   不可以这么操作的。因为 vec  和s_vec的类型不匹配 将一个容器复制给另一个容器时,类型必须匹配:容器类型和
									//元素类型都必须相同。

	vector<A>vec1(vec);//这样子就OK了
	A b;  //第二次定义
	b.id = 100;
	b.leng = 200;
	b.what = 300;
	vec1.push_back(b);//里面不可以填my_struct因为类型不一样

	vector<A>::iterator ai = vec1.begin();
	cout << endl;
	// 这里就是打印10 ,和 100   因为 先前已经放了一个对象 a 进去了!
	//为什么献打印10呢。因为容器的顺序,是按照 放入的顺序进行排序的;
 	for (ai; ai != vec1.end();++ai)
	{
		cout << (*ai).id << endl;
	}

	// 采用这种初始化形式可复制不能直接复制的容器,容器是不能直接复制的,但是可以下面这样子的方法复制,从开始,到结尾,
	vector<A>vec2(vec1.begin(), vec1.end());
	vector<A>::iterator _si = vec2.begin();
	// 为什么si->id=10;呢,因为 他是复制的vec1,而vec1 是复制的vec;懂了吗?- -;复制不成改变过;
	cout << "_si->id ="<<_si->id << endl;;

	//写到这里 我忍不住要把 C++ primer上面的一段程序粘贴过来,

	//我们知道指针就是迭代器,因此允许通过使用内置数组中的
	//一对指针初始化容器也就不奇怪了:

	char *words[] = { "stately", "plump", "buck", "mulligan" };

	// calculate how many elements in words   计算有多少元素
	size_t words_size = sizeof(words) / sizeof(char *);

	// use entire array to initialize words2  使用整个数组初始化words2
	list<string> words2(words, words + words_size);
	/*

	使用 sizeof计算数组的长度。将数组长度加到指向第一个元素的指针上就
	可以得到指向超出数组末端的下一位置的指针。 通过指向第一	个元素的指针
	words 和指向数组中最后一个元素的下一位置的指针,实现了words2 的初始化
	其中第二个指针提供停止复制的条件,其所指向的位置上存
	放的元素并没有复制。

	*/

	//二〇一五年二月五日 01:50:36  好了晚上2点了。我要学lua了.早上还要上班,呵呵/很多内容还没写出来,大家有什么要补充的可以说出来把。说了这么多。都是给像和我一样基础不是太好的人学习的。

	//by creat 2015-02-05 01:52:41
	//by CapeJasmine

	system("pause");
}
时间: 2024-08-03 15:19:16

Vector用法,新手专用;的相关文章

C++ vector用法(转)

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begi

bk-02 C++ vector用法 博客园

HappyWorking! 博客园 管理 C++ vector用法 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int

vector用法总结(转载)

一.vector的基本概念 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包含其他对象.一个容器中的所有对象都必须是同一种类型的.使用vector之前,必须包含相应的头文件. #include<vector> usingstd::vector; vector是一个类模板(classtemplate),这个类和函数定义可用于不同的数据类型上.因此,我们可以定义保存strin

STL源代码学习--vector用法汇总

一.容器vector 使用vector你必须包含头文件<vector>: #include<vector> 型别vector是一个定义于namespace std内的template: [cpp] view plaincopyprint? template<class _Ty, class _Ax = allocator<_Ty> > 第二个參数定义内存模型. 我们一般採用默认的内存模型. 二.vector的功能 vector模塑出一个动态数组.vector

Java中vector用法整理

ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 import java.util.*; /** * 演示Vector的使用.包括Vector的创建.向Vector中添加元素.从Vector中删除元素. * 统计Vector中元素的个数和遍历Vector中的元素. */ public class VectorDemo{ public static void main(String[] args){ //Vector的创建 //使用Vector

C++中的vector 用法解析

     一.概述     vector 是C++标准模板库的部分内容,他是一个多功能的,能够操作多种 数据结构和算法 的模板类和函数库.     vector 是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小.  1 //C语言风格 2 int myhouse[100]; 3 //采用vector 4 vector<int> vecmyhouse(100); 当如上定义后,vecmyhouse就可以存放100个int 型的数据了.

【转】 C++ vector用法

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begi

STL vector用法介绍

介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象

STL 之 vector 用法

一.头文件 #include<vector> 二.常用方法: // 在这个向量的尾部插入x的考贝,平均时间为常数,最坏时间为O(n): 1: void push_back(const T& x): 比如:vector<string> fruits; fruits.pusb_back ("orange"); fruits.push_back("apples"); fruits.push_back("grapes");