2019独角兽企业重金招聘Python工程师标准>>>

头文件

#ifndef  VECTOR_CONTAINER_H_
#define  VECTOR_CONTAINER_H_struct Vector {float v[4];Vector() {for (int i = 0; i < 4 ;++i) {v[i] = 0;}}Vector(float ve[]) {for (int i = 0; i < 4; ++i) {v[i] = ve[i];}}void output() ;};class VectorContainer {public:VectorContainer();// Copy Constructor, need deep copy.VectorContainer(const VectorContainer& other);VectorContainer(Vector *vectors, int size);~VectorContainer();Vector& operator[](int index);Vector* operator->();void operator()();Vector& operator()(int i);float operator()(int i, int j);private:// This is a pointer point to a array of Vector.Vector* vectors_;// The size of the array of Vector.int size_;
};#endif  /*VECTOR_CONTAINER_H*/

.cpp

#include <iomanip>
#include "vector_container.h"
#include <iostream>
using namespace std;void Vector::output()
{int i;float sum=0.0;for(i=0; i<4; i++){sum=sum+v[i];cout<<v[i]<<endl;}cout<<"Sum is "<<sum<<endl;
}VectorContainer::VectorContainer(const VectorContainer& other){int i;size_=other.size_;vectors_=new Vector[size_+1];for(i=0;i<size_;i++){vectors_[i]=other.vectors_[i];}}VectorContainer::VectorContainer(Vector *vectors, int size){int i;size_=size;vectors_=new Vector[size_+1];if(vectors_!=NULL){for(i=0;i<size_;i++)vectors_[i]=vectors[i];}
}VectorContainer:: ~VectorContainer()
{delete []vectors_;vectors_=NULL;cout<<"Destructor is called"<<endl;
}Vector&  VectorContainer::operator[](int index){int i;if(index>=0&&index<=size_-1){for(i=0;i<4;i++){cout<<fixed<<showpoint;cout<<setprecision(2)<<vectors_[index].v[i]<<endl;}}return vectors_[index];}Vector* VectorContainer::operator->(){int i,j,flag;float sum=0.0,temp;for(i=0;i<size_;i++){temp=0.0;for(j=0;j<4;j++){temp=temp+vectors_[i].v[j];}if(temp>sum){sum=temp;flag=i;}}return &vectors_[flag];}void VectorContainer::operator()(){int i,j,k;float temp,sum;float s[1000];for(i=0;i<size_;i++){sum=0.0;for(j=0;j<4;j++){sum=sum+vectors_[i].v[j];}s[i]=sum;}for(j=0;j<size_-1;j++){for(i=0;i<size_-1-j;i++){if(s[i]>s[i+1]){temp=s[i];s[i]=s[i+1];s[i+1]=temp;for(k=0;k<4;k++){temp=vectors_[i].v[k];vectors_[i].v[k]=vectors_[i+1].v[k];vectors_[i+1].v[k]=temp;}}}}for(i=0;i<size_;i++){  cout<<"Case "<<i<<":"<<endl;vectors_[i].output();cout<<endl;}}Vector& VectorContainer::operator()(int i){int m,j,k;float temp,sum;float s[1000];for(m=0;m<size_;m++){sum=0.0;for(j=0;j<4;j++){sum=sum+vectors_[m].v[j];}s[m]=sum;}for(j=0;j<size_-1;j++){for(m=0;m<size_-1-j;m++){if(s[m]>s[m+1]){temp=s[m];s[m]=s[m+1];s[m+1]=temp;for(k=0;k<4;k++){temp=vectors_[m].v[k];vectors_[m].v[k]=vectors_[m+1].v[k];vectors_[m+1].v[k]=temp;}}}}cout<<"Case "<<i<<":"<<endl;vectors_[i].output();    // output the ith //return vectors_[i];}float VectorContainer::operator()(int i, int j){cout<<fixed<<showpoint;cout<<setprecision(2)<<vectors_[i].v[j]<<endl;return vectors_[i].v[j];}

测试源文件

#include "vector_container.h"
#include<iostream>
using namespace std;
int main()
{
float test1[4]={9.2,8.3,7.4,10.7};
float test2[4]={1.0,3.0,2.0,4.0};
float test3[4]={77.0,18.0,27.0,10.0};
Vector v[3];
v[0]=test1;
v[1]=test2;
v[2]=test3;
Vector *ptr=v;
VectorContainer mytest(ptr,3);
mytest();
return 0;
}

转载于:https://my.oschina.net/u/2348884/blog/406838

C++实现的简单vector相关推荐

  1. Python 实现简单 Vector 类

    这一节,我们来实现一个简单的 Vector 类. Vector 类有两个属性,为 x,y 坐标,即对应向量的横纵坐标. 首先,实现重载 + 号的方法def __add__,及实现两个向量的加法.具体做 ...

  2. java中vector容器,vector向量容器(常用的使用方法总结)

    关于STL中vector容器的学习,编译运行后边看代码,边看执行结果效果更佳,还是想说看别人的代码一百遍,不如自己动手写一遍. vector向量容器不但能像数组一样对元素进行随机访问,还能随时在尾部插 ...

  3. python vector 初始化_从零开始搭建机器学习算法框架(python)--计算框架

    介绍 今天开始一个新的系列,这个系列的目标是用python在不使用任何第三方库的情况下去实现各类机器学习或者深度学习的算法.之所以会有这种想法是因为每当我想提高编程技巧的时候,我总希望能够做一些简单又 ...

  4. tars-php文档,TarsPHP - tars-extension - 《Tars 1.8 使用手册》 - 书栈网 · BookStack

    tars-extension phptars 扩展使用说明 php扩展能力说明 为了在扩展中实现tars打包解包和tup编码解码的全部体系,所以php扩展主要做了三件事情:将tars的所有数据结构进行 ...

  5. c++ vector简单使用

    最近写pta 上的题目,由于只会c,很多东西还要手打,很慢. 于是开始学习c++的STL一些常见简单的操作.新手友好,高手劝退. vector:不定长数组 头文件#include<vecotor ...

  6. R语言unlist函数将复杂数据(list列表、dataframe、字符串String)对象处理成简单向量vector形式:将包含dataframe和字符串的向量列表转换为单个向量(删除数据名称)

    R语言unlist函数将复杂数据(list列表.dataframe.字符串String)对象处理成简单向量vector形式:将包含dataframe和字符串的向量列表转换为单个向量(删除数据名称) 目 ...

  7. C++线性序列容器vector简单总结

    C++线性序列容器<vector>简单总结 vector是一个长度可变的数组,使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加:Vector类提供额外的方法来增加.删除 ...

  8. vector简单实现

    #include<iostream> "https://github.com/fookwood/fkcode/network" template<class Ob ...

  9. 动态数组vector的使用_简单代码示例

    简单代码示例 //动态数组vector的使用 #include <iostream> #include <vector> //用 <vector>头文件 using ...

最新文章

  1. 深度学习多变量时间序列预测:卷积神经网络(CNN)算法构建时间序列多变量模型预测交通流量+代码实战
  2. 在Ruby中获取system()调用的输出
  3. Beta阶段项目总结
  4. 深入理解分布式技术 - ZooKeeper数据一致性解读
  5. python打开文件报错无效序列_psycopg2.DataError:编码“UTF8”的字节序列无效:0xa0
  6. java模型给泛型_java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
  7. 【ORACLE 高可用】 ORACLE STREAM 基于单表的流复制 配置 案例
  8. ElasticSearch多字段查询best_fieldsmost_fields
  9. oracle连表图解,oracle 表连接方式解析
  10. 在 Angular 8 中,我们可以期待些什么
  11. 10.docker build
  12. python3开发环境_python3开发环境安装
  13. pdf转word文档总结
  14. 几何校正(坐标变换+灰度重采样)
  15. PHP+经贸时间轴 毕业设计-附源码211617
  16. 黑鲨Android系统耗电高,安卓顶配,黑鲨2pro作为主力机使用四天,来聊聊使用感受...
  17. 《Microduino实战》——3.1 准备开发环境
  18. FLStudio21水果免费版本FL2023电音制作软件
  19. html5 canvas 扫雷游戏
  20. Maven下载与配置详细教程

热门文章

  1. MySQL如何找到表与表之间的关系?
  2. CoreOS的Tectonic新发行版支持Kubernetes自我管理
  3. 【DataGuard】ORA-16014 and ORA-00312 Messages in Alert.log of Physical Standby
  4. sharepoint 2007 网站操作 显示菜单不全
  5. 云网融合 — 应用场景
  6. 基于 Linux Bridge 的 Neutron 多平面网络实现原理
  7. OpenStack 2018 年终盘点
  8. 【NLP】Attention Model(注意力模型)学习总结
  9. oracle11g安装过程提示swap size 检查失败问题
  10. vim文本编辑器详解