

去年电脑里装了VisualStudioCommunicate2015,然后电脑很久一段时间都没有使用。
现在可以用了,但是坑人的是2015没有升级到2017的选项,所以只能重新下载个安装程序。
然后我作死地把基本上所有可选组件都选上了,于是安装包足足有43GB,堪比3个星际2。
所以一直从上午等到晚上才都部署好环境……
2015没办法卸载,不是不能卸,而是我当初装的时候选的组件太多了,卸不过来了……

管它呢,放在那也不碍事,反正我也不必要给电脑里塞满片啊啥的……要看就拿迅雷下现看现下嘛……
然后嘛……
真的,新版VS用得特别爽!
我就在刚刚注意到它的小细节:
1.右边的解决方案不仅把你自己的文件都显示出来了,依赖库也可以随时查,找文件时非常方便;
2.在写头文件声明时,写好声明后会弹出个小灯泡,问你要不要写具体实现,如果要的话它会直接在你声明后面放个子窗口让你写……就像这样:

3.它左边的条子是有用处的,没修改的行会显示为绿的,修改过的行会显示为黄的,看修改了哪些部分时就很方便了,就像github一样。
@姚氏帅哥 @FHC红石 @syz666
萌新表示什么也看不懂,来打个酱油QWQ
本帖最后由 姚氏帅哥 于 2017-6-19 12:30 编辑
vs对c++11/14/17不完全支持,不过已经做的很好了还有为什么我看截图都能看到语法错误,气死了
vs对c++11/14/17不完全支持,不过已经做的很好了还有为什么我看截图都能看到语法错误,气死了
姚氏帅哥 发表于 2017-6-19 12:29
vs对c++11/14/17不完全支持,不过已经做的很好了还有为什么我看截图都能看到语法错误,气死了
...
哪里有错?
姚氏帅哥 发表于 2017-6-19 12:37
memoryUnit一会加了一会又没有了
到底是不是类模板啊
是类模板,我图没截全,class声明前面有个template
啊哈哈我控制不住记几啊 ——跑男233xD
langyo_v3 发表于 2017-6-19 12:38
是类模板,我图没截全,class声明前面有个template
那不是应该返回MemoryUnit<T>吗,你为什么返回的是MemoryUnit?
姚氏帅哥 发表于 2017-6-19 12:41
那不是应该返回MemoryUnit吗,你为什么返回的是MemoryUnit?
诶等一下,你试着回复一下我这个回复<s cript>alert("测试");</script>
懵逼脸,但是看起来好厉害!顶一个2333
姚氏帅哥 发表于 2017-6-19 13:35
s cript?
蜜汁空格
不加空格就403了蛤蛤蛤……
不过你没发现吗,<>之内的东西全部都被论坛自动屏蔽了……
但是好像不是屏蔽,而是作为标签用进去了……
2017貌似现在还只有在线安装?速度怎么样 我这还是2015呢
然而我并看不懂啊
我回来再看一遍你写的声明,吐了一地的老血
我是说要提供begin,end作为接口,是作为接口!不是成员!
按照国际惯例成员应当为[first,last)(甚至是你说的from,to都可以呀
还有我之前是不是说过,data和length应该独立出去?
想不到它们依然安然无恙,静静地躺在你的声明中
以及所有成员貌似都在返回一个新的对象,这会不会导致什么问题?
等我考完麻烦你把完整memory_unit声明发给我
我来给你修缮(一切按照国际惯例声明和命名)
我是说要提供begin,end作为接口,是作为接口!不是成员!
按照国际惯例成员应当为[first,last)(甚至是你说的from,to都可以呀
还有我之前是不是说过,data和length应该独立出去?
想不到它们依然安然无恙,静静地躺在你的声明中
以及所有成员貌似都在返回一个新的对象,这会不会导致什么问题?
等我考完麻烦你把完整memory_unit声明发给我
我来给你修缮(一切按照国际惯例声明和命名)
502mc 发表于 2017-6-19 14:23
2017貌似现在还只有在线安装?速度怎么样 我这还是2015呢
它虽然是同时下载与安装,但它变聪明了,修复VS只要读取本地已经下载好的资源就行了
姚氏帅哥 发表于 2017-6-19 18:18
我回来再看一遍你写的声明,吐了一地的老血
我是说要提供begin,end作为接口,是作为接口!不是成员!
按照 ...
重新写一个专门用于管理begin和end的类么……
真的很麻烦啊……
而且我原本的目的其实只是用unsigned char类型,结果你一直在那叨叨叨,搞得我整个程序里全特么是抽象……
实现还没来得及开始写……
另外,怎么把成员改成接口?网上的资料我没看懂= =
姚氏帅哥 发表于 2017-6-19 18:18
我回来再看一遍你写的声明,吐了一地的老血
我是说要提供begin,end作为接口,是作为接口!不是成员!
按照 ...
https://github.com/haohaoh4/algorithms/blob/master/src/vector.cpp
我学校里有个学弟,他也实现了一个vector
我暂时先给他指出了3个错误,不过其实写的还算可以了
人家才七年级
你可以看看,如果能再挑出什么毛病,你回复我,我转给他
2333好巧YYS也在玩
我叫坂本 发表于 2017-6-19 19:24
2333好巧YYS也在玩
谁是YYS?
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╰)╮
langyo_v3 发表于 2017-6-19 19:16
https://github.com/haohaoh4/algorithms/blob/master/src/vector.cpp
我学校里有个学弟,他也实现了一个 ...
你指出的是什么错误,他改了吗
一眼看下去,像是一个上个世纪80年代风格的c++代码(手动滑稽
其实如果这段代码放在十几年前还好,现在就。。。
他在论坛吗,在的话我单独和他说
(我向来先看代码风格和语法错误的,你懂的,
现在只看了代码风格,语法和算法等会看)
姚氏帅哥 发表于 2017-6-19 21:31
你指出的是什么错误,他改了吗
一眼看下去,像是一个上个世纪80年代风格的c++代码(手动滑稽
其实如果这段 ...
我只能通过学校的QQ群联系他,你直接跟我说吧
或者在github上fork再post也行
langyo_v3 发表于 2017-6-19 21:44
我只能通过学校的QQ群联系他,你直接跟我说吧
或者在github上fork再post也行 ...
你忽略了25楼不计吗。。。
跟他说我得酝酿下,放暑假再说吧╭(╯3╰)╮
姚氏帅哥 发表于 2017-6-19 22:10
你忽略了25楼不计吗。。。
跟他说我得酝酿下,放暑假再说吧╭(╯3╰)╮
25楼我看了,但我还得考虑下,毕竟其实怎样实现都是无所谓的、能高效实现功能就是好程序
你酝酿完人家估摸着得连deque都写出来了= =
不过不强求
本帖最后由 姚氏帅哥 于 2017-6-19 23:02 编辑
妈的你确定他写的是vector?不管是接口还是功能,活脱脱一个stack有没有?
还有malloc和free是在可以逗我笑吗我以为我在看c语言呢
还有各种幻数(magic number)满天飞,什么20啊30啊40啊,都什么意思啊
像NULL啊 像 if(指针) 啊 还有初始化列表直接忽略不计啊的问题
迭代器没有,复制构造函数没有,基础设施全部没有。。。
哇哇哇,活脱脱就是把他“实现了”不像是要继续写下去或者是要改的样子
你可以直接复制过去,有点伤人,但是都是要害,为他好
这段没有酝酿,直接发的,不妥你就改改,但不要曲解我的含义就行了
langyo_v3 发表于 2017-6-19 22:46
25楼我看了,但我还得考虑下,毕竟其实怎样实现都是无所谓的、能高效实现功能就是好程序
你酝酿完人家估 ...
妈的你确定他写的是vector?不管是接口还是功能,活脱脱一个stack有没有?
还有malloc和free是在可以逗我笑吗我以为我在看c语言呢
还有各种幻数(magic number)满天飞,什么20啊30啊40啊,都什么意思啊
像NULL啊 像 if(指针) 啊 还有初始化列表直接忽略不计啊的问题
迭代器没有,复制构造函数没有,基础设施全部没有。。。
哇哇哇,活脱脱就是把他“实现了”不像是要继续写下去或者是要改的样子
你可以直接复制过去,有点伤人,但是都是要害,为他好
这段没有酝酿,直接发的,不妥你就改改,但不要曲解我的含义就行了
666,VS其实挺好的
等等,cpp文件可以用中文?
等等,cpp文件可以用中文?
Java_command 发表于 2017-6-20 02:43
666,VS其实挺好的
等等,cpp文件可以用中文?
……不行么?
姚氏帅哥 发表于 2017-6-19 22:57
妈的你确定他写的是vector?不管是接口还是功能,活脱脱一个stack有没有?
还有malloc和free是在可以逗我 ...
- #pragma once
- #ifndef DEFAULT_SIZE
- //定义默认的数据缓冲区大小
- #define DEFAULT_SIZE 1024
- #endif
- #ifndef DEFAULT_BEGIN
- //定义默认开始写入的位置
- #define DEFAULT_BEGIN 128
- #endif
- #include<fstream>
- using namespace std;
- template<typename T>
- class memoryInfo {
- private:
- unsigned int from;
- //有效数据开始位置,有效数据包含此位置的数据
- unsigned int to;
- //有效数据结束位置,有效数据不包含此数据的位置
- //有效数据的范围为[from,to)
- unsigned int length;
- //data的真实大小(放这里头的理由嘛...为了方便调用...)
- T *data;
- //数据保存的指针
- public:
- unsigned int begin();
- //返回from
- unsigned int end();
- //返回to
- inline unsigned int blockSize();
- //返回T类型的占用字节数
- T *data();
- //暴露出指针
- unsigned int size();
- //返回目前正在使用的内存的大小
- unsigned int trueSize();
- //返回分配动态内存所占用的真实大小
- bool test();
- //测试begin、end、length的数字是否有错,如果有错会返回错误
- bool repair();
- //修复错误的游标(这很可能会释放并重新分配内存、不会保留原始数据!)(如果释放了内存重新分配,返回false)
- bool isNull();
- //指针是否为空
- };
- template<typename T>
- class memoryUnit {
- public:
- memoryInfo<T> point; //数据保存的范围浮标
- memoryUnit();
- //默认给出DEFAULT_SIZE大小、从DEFAULT_BEGIN开始的缓冲区
- memoryUnit(unsigned int size);
- //给出size大小、从0开始的缓冲区
- memoryUnit(unsigned int size, unsigned int begin);
- //给出size大小、从begin开始的缓冲区
- memoryUnit(const memoryUnit &input);
- //拷贝构造函数
- memoryUnit(const memoryUnit &input, unsigned int begin, unsigned int end);
- //拷贝input中[begin,end)部分的数据作为副本
- memoryUnit(const memoryUnit &input, unsigned int inputBegin, unsigned int inputEnd, unsigned int size, unsigned int begin);
- //拷贝input中[begin,end)部分的数据作为副本,放在给出size大小、从begin开始的缓冲区内
-
- inline unsigned int size();
- //获取真实数据大小
- memoryUnit<T> cut(unsigned int begin, unsigned int end);
- //返回自己指定范围内的数据
- memoryUnit<T> operator+(const memoryUnit &input1,const memoryUnit &input2);
- //返回两个数据连接后的数据
- memoryUnit<T> operator-(unsigned int count);
- //减掉count数量的数据(其实只是将end指针向前移动)
- T operator[](unsigned int point);
- //将data暴露出去
- memoryUnit<T> insert(int where, const T &input);
- //在where位置的后面插入input;where可以是负数哦(当然了最多只能-1,否则throw)
- memoryUnit<T> loadFile(istream &stream);
- //将文件里的数据按顺序加载入这里(注意这里将会直接操作内存)
- bool writeFile(osteram &stream);
- //将这个容器里的数据按顺序写到文件
- };
- class bigInt {
- private:
- memoryUnit<unsigned char> data;
- public:
- bigInt &operator+(bigInt &num);
- bigInt &operator-(bigInt &num);
- bigInt &operator*(bigInt &num);
- bigInt &operator/(bigInt &num);
- bigInt &operator%(bigInt &num);
-
- bigInt &operator+=(bigInt &num);
- bigInt &operator-=(bigInt &num);
- bigInt &operator*=(bigInt &num);
- bigInt &operator/=(bigInt &num);
- bigInt &operator%=(bigInt &num);
- bool isZero();
- //检查是否为0
- unsigned int last;
- //在进行过除法运算后的余数会临时保存在这里,这样在一些情况下可以减少不必要的重复运算(比如短除法计算进制)
- };
这回可以了?