`
java-mans
  • 浏览: 11465759 次
文章分类
社区版块
存档分类
最新评论

自己写一个数组,同样也可以写一个容器

 
阅读更多
#include<iostream>
#include<string>
#include<cstddef>
#include<functional>
#include<algorithm>
using namespace std;
template<typename T,std::size_t thesize>
class carray{
private:
	T v[thesize];
public:
	typedef T value_type;
	typedef T* iterator;
	typedef const T* const_iterator;
	typedef T& reference;
	typedef const T& const_reference;
	typedef std::size_t size_type;
	typedef std::ptrdiff_t difference_type;

	 iterator begin(){
		return &v[0];
	}
	 const_iterator begin() const{
		return &v[0];
	 }
	iterator end(){
		return v+thesize;
	}
	const_iterator end() const{
		return v+thesize;
	}
	reference operator[](std::size_t i){
		return v[i];
	}

	const_reference operator[](std::size_t i) const{
		return v[i];
	}

	size_type size() const{
		return thesize;
	}

	size_type max_size(){
		return thesize;
	}

	T* as_array(){
		return v;
	}
};

int main(){
	
	carray<int,10>a;
	for(unsigned i=0;i<a.size();++i){
		a[i]=i+1;
	}
	for(unsigned i=0;i<a.size();++i){
		cout<<a[i]<<" ";
	}
	cout<<endl;
	reverse(a.begin(),a.end());
	for(unsigned j=0;j<a.size();++j){
		cout<<a[j]<<" ";
	}
	cout<<endl;
	transform(a.begin(),a.end(),a.begin(),negate<int>());
	for(int i=0;i<a.size();++i){
		cout<<a[i]<<" ";
	}
	cout<<endl;
	system("pause");
	return 0;
}

更详细的资料,参考boost网站的资料:看贴图

模仿,自己写一个容器,有增删改函数、

分享到:
评论

相关推荐

    jdk数组的基础上的集合使用及详解.docx

    集合引入:在学习的过程中,学习了数组这个容器,数组的存储数据给我们提供了方便,但是一个简单的数组容器无法满足我们的需求,所以jdk又在数组的基础上诞生了集合,而且在不断的发展中,集合现在已经是一个大家族...

    java关于数组(学习笔记)

    数组就是一个容器,可以同时容纳多个元素。意思是“一组数据”。 Java语言中的数组是一种引用数据类型。不属于基本数据类型,父类同样是Object类。因为是引用数据类型,所以数组的对象存储在堆内存中。如果存储的是...

    C++中的vector容器对象学习笔记

    一个容器中的所有对象都必须是同一种类型的 。 vector对象的定义和初始化 同样的,使用前,导入头文件#include &lt;vector&gt; 可以使用using声明:using std::vector; vector 是一个类模板(class template)。使用模板...

    集合anylist要进行筛选.pdf

    这也是面向对象语言的重要特点之一,现在你们先把它理解为,如果一个对象继承了类或接口,那么它也具有了这个类和接口中的方法、属性,可以用这些继承的方法和属性来做相应的操作,比如:数组增加元素没有Add()...

    学python必学的基础Numpy,免费学习numpy

    这是因为ndarray中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python原生list就只能通过寻址方式找到下一个元素,这虽然也导致了在通用性能方面Numpy...

    JAVA面试题最全集

    写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java-servlet-api.doc

    Servlet引擎利用Java类载入工具载入一个Servlet,Servlet引擎可以从一个本地的文件系统、一个远程的文件系统以及网络载入Servlet。 Servlet的初始化 Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    一个MIDP俄罗斯方块游戏的设计和实现

    我们可以用一个颜色数组(程序里叫 BRICK_COLORS)存储这8种颜色。若某种小砖块的id为3,那么该小砖的颜色为BRICK_COLORS[3-1]. 下坠物 下坠物本质上为16个小砖块组成的正方形。下坠物一共有7种,比如有"田"字形...

    PetShop4.0宠物商店+系统架构设计+中文注释源码+PDF中文详解

    16、 OrderInfo.cs文件:用于显示用户某一个订单具体信息的类,在此一个订单当中,可能包括多个商品种类,即包括多个LineItemInfo对象(实际上在OrderInfo类中也确实存在LineItemInfo类型对象的一个数组!...

    C++MFC教程

    在16位的系统中系统中只有一个消息队列,所以系统必须等待当前任务处理消息后才可以发送下一消息到相应程序,如果一个程序陷如死循环或是耗时操作时系统就会得不到控制权。这种多任务系统也就称为协同式的多任务系统...

    CCF-CSP必学知识【CSP认证考点的知识要求】

    C(有越界风险,可用c++的动态数组来写): 问题:输入后只是跳过了‘-’,但是无法判断到底这个符号是在哪里,如果输入“067-0-821162-4”同样会输出“Right”。但是考试系统不管这个,只检查输出即可。(漏洞) 2...

    CCF-CSP必学知识

    C(有越界风险,可用c++的动态数组来写): 问题:输入后只是跳过了‘-’,但是无法判断到底这个符号是在哪里,如果输入“067-0-821162-4”同样会输出“Right”。但是考试系统不管这个,只检查输出即可。(漏洞) 2...

    layoutcontainer:用于常见Web布局的布局调整大小引擎

    容器,区域和单元布局容器最多包含5个区域: 每个区域可以是一个单元格或一个布局容器,因此我们可以灵活地构建完整的布局结构。2.分离器分离器是将容器内不同区域分开的边缘。 移动拆分器时,我们将处理相应区域的...

    leetcode正方形坐标-firstblog:第一个博客

    同样利用暴力法的原理--排除柱子,不同的是通过巧妙的遍历快速排除柱子,并且也遍历了所有能够构成容器的柱子组合。 比较两端柱子的高低并选择低柱子,那么低柱子与其他任何的柱子之间形成的容器体积最大的就是由该...

    leetcode双人赛-LeetCode:2019年5月开始拿Java刷leetcode

    和三数之和一个思路,同样注意去重 2019-06-13 19_删除链表的倒数第N个节点 可以使用两个指针而不是一个指针。第一个指针从列表的开头向前移动n步,而第二个指针将从列表的开头出发。现在,两个指针同时移动,当第一...

    软件设计规范

    架构也是衣服的一个部件,类似衣服的连接方式,模块集合的重心比对。 衣服是一个没有核心的结构。软件也一样要显示出这个特性。 无论如何,我们需要有观察软件的眼光,无论一套软件依据什么样的理论产生。 什么是...

    xtensor:具有广播和惰性计算的C ++张量

    介绍xtensor是一个C ++库,用于使用多维数组表达式进行数值分析。 xtensor提供一个可以进行延迟广播的可扩展表达系统。 遵循C ++标准库习惯用法的API。 操纵数组表达式并建立在xtensor上的xtensor 。 xtensor容器受...

Global site tag (gtag.js) - Google Analytics