2044265168
然而我并看不懂啊

Yaossg
我回来再看一遍你写的声明,吐了一地的老血
我是说要提供begin,end作为接口,是作为接口!不是成员!
按照国际惯例成员应当为[first,last)(甚至是你说的from,to都可以呀
还有我之前是不是说过,data和length应该独立出去?
想不到它们依然安然无恙,静静地躺在你的声明中
以及所有成员貌似都在返回一个新的对象,这会不会导致什么问题?
等我考完麻烦你把完整memory_unit声明发给我
我来给你修缮(一切按照国际惯例声明和命名)

langyo_v3
502mc 发表于 2017-6-19 14:23
2017貌似现在还只有在线安装?速度怎么样 我这还是2015呢

它虽然是同时下载与安装,但它变聪明了,修复VS只要读取本地已经下载好的资源就行了

langyo_v3
姚氏帅哥 发表于 2017-6-19 18:18
我回来再看一遍你写的声明,吐了一地的老血
我是说要提供begin,end作为接口,是作为接口!不是成员!
按照 ...

重新写一个专门用于管理begin和end的类么……
真的很麻烦啊……

而且我原本的目的其实只是用unsigned char类型,结果你一直在那叨叨叨,搞得我整个程序里全特么是抽象……
实现还没来得及开始写……

另外,怎么把成员改成接口?网上的资料我没看懂= =

langyo_v3
姚氏帅哥 发表于 2017-6-19 18:18
我回来再看一遍你写的声明,吐了一地的老血
我是说要提供begin,end作为接口,是作为接口!不是成员!
按照 ...

https://github.com/haohaoh4/algorithms/blob/master/src/vector.cpp
我学校里有个学弟,他也实现了一个vector
我暂时先给他指出了3个错误,不过其实写的还算可以了
人家才七年级

你可以看看,如果能再挑出什么毛病,你回复我,我转给他

我叫坂本
2333好巧YYS也在玩

langyo_v3

谁是YYS?

我叫坂本

- -
阴阳师(@阴阳师元素祭祀)

Yaossg
langyo_v3 发表于 2017-6-19 18:53
重新写一个专门用于管理begin和end的类么……
真的很麻烦啊……

喵喵喵?
我说的接口指的是成员函数
begin和end是标准钦定的成员函数名称
说白了,我想说的begin和end名字取得不好
应该是first和last或者你之前的from和to
begin,end这样的名字应该是成员函数,返回first和last或from和to
我说的是专门写一个管理data和length的类啊
专门管理first,last?sec90°!csc0°!
指针要么不用,要么包装,且不要和无关的东西放在一起
等你实现的时候就知道用意了╭(╯3╰)╮
泛型是你自己加的,与我无关,我不背锅(╯‵□′)╯︵┻━┻
不想要泛型可以删掉,懒得删我可以帮你(╯‵□′)╯︵┻━┻
我本来还想给你介绍右值引用的
看你一时无法接受就等我放假了再说吧╭(╯3╰)╮

Yaossg
langyo_v3 发表于 2017-6-19 19:16
https://github.com/haohaoh4/algorithms/blob/master/src/vector.cpp
我学校里有个学弟,他也实现了一个 ...

你指出的是什么错误,他改了吗
一眼看下去,像是一个上个世纪80年代风格的c++代码(手动滑稽
其实如果这段代码放在十几年前还好,现在就。。。
他在论坛吗,在的话我单独和他说
(我向来先看代码风格和语法错误的,你懂的,
现在只看了代码风格,语法和算法等会看)

langyo_v3
姚氏帅哥 发表于 2017-6-19 21:31
你指出的是什么错误,他改了吗
一眼看下去,像是一个上个世纪80年代风格的c++代码(手动滑稽
其实如果这段 ...

我只能通过学校的QQ群联系他,你直接跟我说吧
或者在github上fork再post也行

Yaossg
langyo_v3 发表于 2017-6-19 21:44
我只能通过学校的QQ群联系他,你直接跟我说吧
或者在github上fork再post也行 ...

你忽略了25楼不计吗。。。
跟他说我得酝酿下,放暑假再说吧╭(╯3╰)╮

langyo_v3
姚氏帅哥 发表于 2017-6-19 22:10
你忽略了25楼不计吗。。。
跟他说我得酝酿下,放暑假再说吧╭(╯3╰)╮

25楼我看了,但我还得考虑下,毕竟其实怎样实现都是无所谓的、能高效实现功能就是好程序

你酝酿完人家估摸着得连deque都写出来了= =
不过不强求

Yaossg
本帖最后由 姚氏帅哥 于 2017-6-19 23:02 编辑
langyo_v3 发表于 2017-6-19 22:46
25楼我看了,但我还得考虑下,毕竟其实怎样实现都是无所谓的、能高效实现功能就是好程序

你酝酿完人家估 ...

妈的你确定他写的是vector?不管是接口还是功能,活脱脱一个stack有没有?
还有malloc和free是在可以逗我笑吗我以为我在看c语言呢
还有各种幻数(magic number)满天飞,什么20啊30啊40啊,都什么意思啊
像NULL啊 像 if(指针) 啊 还有初始化列表直接忽略不计啊的问题
迭代器没有,复制构造函数没有,基础设施全部没有。。。
哇哇哇,活脱脱就是把他“实现了”不像是要继续写下去或者是要改的样子
你可以直接复制过去,有点伤人,但是都是要害,为他好
这段没有酝酿,直接发的,不妥你就改改,但不要曲解我的含义就行了

Java_command
666,VS其实挺好的
等等,cpp文件可以用中文?

langyo_v3
Java_command 发表于 2017-6-20 02:43
666,VS其实挺好的
等等,cpp文件可以用中文?

……不行么?

langyo_v3
姚氏帅哥 发表于 2017-6-19 22:57
妈的你确定他写的是vector?不管是接口还是功能,活脱脱一个stack有没有?
还有malloc和free是在可以逗我 ...
  1. #pragma once
  2. #ifndef DEFAULT_SIZE
  3. //定义默认的数据缓冲区大小
  4. #define DEFAULT_SIZE 1024
  5. #endif
  6. #ifndef DEFAULT_BEGIN
  7. //定义默认开始写入的位置
  8. #define DEFAULT_BEGIN 128
  9. #endif

  10. #include<fstream>
  11. using namespace std;

  12. template<typename T>
  13. class memoryInfo {
  14. private:
  15.         unsigned int from;
  16.         //有效数据开始位置,有效数据包含此位置的数据
  17.         unsigned int to;
  18.         //有效数据结束位置,有效数据不包含此数据的位置
  19.         //有效数据的范围为[from,to)
  20.         unsigned int length;
  21.         //data的真实大小(放这里头的理由嘛...为了方便调用...)
  22.         T *data;
  23.         //数据保存的指针
  24. public:
  25.         unsigned int begin();
  26.         //返回from
  27.         unsigned int end();
  28.         //返回to
  29.         inline unsigned int blockSize();
  30.         //返回T类型的占用字节数
  31.         T *data();
  32.         //暴露出指针

  33.         unsigned int size();
  34.         //返回目前正在使用的内存的大小
  35.         unsigned int trueSize();
  36.         //返回分配动态内存所占用的真实大小

  37.         bool test();
  38.         //测试begin、end、length的数字是否有错,如果有错会返回错误
  39.         bool repair();
  40.         //修复错误的游标(这很可能会释放并重新分配内存、不会保留原始数据!)(如果释放了内存重新分配,返回false)
  41.         bool isNull();
  42.         //指针是否为空
  43. };

  44. template<typename T>
  45. class memoryUnit {
  46. public:
  47.         memoryInfo<T> point;                //数据保存的范围浮标

  48.         memoryUnit();
  49.         //默认给出DEFAULT_SIZE大小、从DEFAULT_BEGIN开始的缓冲区
  50.         memoryUnit(unsigned int size);
  51.         //给出size大小、从0开始的缓冲区
  52.         memoryUnit(unsigned int size, unsigned int begin);
  53.         //给出size大小、从begin开始的缓冲区
  54.         memoryUnit(const memoryUnit &input);
  55.         //拷贝构造函数
  56.         memoryUnit(const memoryUnit &input, unsigned int begin, unsigned int end);
  57.         //拷贝input中[begin,end)部分的数据作为副本
  58.         memoryUnit(const memoryUnit &input, unsigned int inputBegin, unsigned int inputEnd, unsigned int size, unsigned int begin);
  59.         //拷贝input中[begin,end)部分的数据作为副本,放在给出size大小、从begin开始的缓冲区内
  60.        
  61.         inline unsigned int size();
  62.         //获取真实数据大小
  63.         memoryUnit<T> cut(unsigned int begin, unsigned int end);
  64.         //返回自己指定范围内的数据
  65.         memoryUnit<T> operator+(const memoryUnit &input1,const memoryUnit &input2);
  66.         //返回两个数据连接后的数据
  67.         memoryUnit<T> operator-(unsigned int count);
  68.         //减掉count数量的数据(其实只是将end指针向前移动)
  69.         T operator[](unsigned int point);
  70.         //将data暴露出去
  71.         memoryUnit<T> insert(int where, const T &input);
  72.         //在where位置的后面插入input;where可以是负数哦(当然了最多只能-1,否则throw)

  73.         memoryUnit<T> loadFile(istream &stream);
  74.         //将文件里的数据按顺序加载入这里(注意这里将会直接操作内存)
  75.         bool writeFile(osteram &stream);
  76.         //将这个容器里的数据按顺序写到文件
  77. };

  78. class bigInt {
  79. private:
  80.         memoryUnit<unsigned char> data;
  81. public:
  82.         bigInt &operator+(bigInt &num);
  83.         bigInt &operator-(bigInt &num);
  84.         bigInt &operator*(bigInt &num);
  85.         bigInt &operator/(bigInt &num);
  86.         bigInt &operator%(bigInt &num);
  87.        
  88.         bigInt &operator+=(bigInt &num);
  89.         bigInt &operator-=(bigInt &num);
  90.         bigInt &operator*=(bigInt &num);
  91.         bigInt &operator/=(bigInt &num);
  92.         bigInt &operator%=(bigInt &num);

  93.         bool isZero();
  94.         //检查是否为0

  95.         unsigned int last;
  96.         //在进行过除法运算后的余数会临时保存在这里,这样在一些情况下可以减少不必要的重复运算(比如短除法计算进制)
  97. };
复制代码



这回可以了?

Yaossg

第一行掩耳盗铃,对,掩耳盗铃,请使用#ifndef#define#endif
我让你把data和length放在一起(MemoryBlock),再把from和to和memoryBlock放在一起(MemoryUnit)
命名问题是硬伤,我考完给你改



langyo_v3
姚氏帅哥 发表于 2017-6-20 12:41
第一行掩耳盗铃,对,掩耳盗铃,请使用#ifndef#define#endif
我让你把data和length放在一起(MemoryBlock) ...

第一行是VS自动生成的,我懒得改= =
其实后面也有#ifndef我怕球

syz666
s-c-r-i-p-t
这有毒。

fyxrim
这个是什么做的?

fyxrim
这个是什么做的?

第一页 上一页 下一页 最后一页