[问题] 想请问c++有像c#可以矩阵扩增的语法吗

楼主: kkinyao666 (胖胖)   2014-05-08 16:06:53
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
我的意思是假如我有一个矩阵A=[1 2 3 4 5]矩阵不能更改
那我想要在矩阵前加入数值让A=[O O O O 1 2 3 4 5]
是不是有什么方法?
在书上很像没有看过@@
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
作者: Killercat (杀人猫™)   2014-05-08 16:08:00
用std::vector
作者: kwk22   2014-05-08 21:13:00
重新配置内存?
作者: kwpn (ITSST)   2014-05-08 21:19:00
除了静态阵列, 其他所有方法都可以吧.
作者: loveme00835 (发箍)   2014-05-08 23:46:00
你的C++应该没办法
作者: damody (天亮damody)   2014-05-09 02:40:00
1. 冷静 2. c++没有专门的语法
作者: Killercat (杀人猫™)   2014-05-09 03:22:00
不过还是觉得std::vector帮你处理掉大部份的operator[]的语意上问题 真的要说最佳解的话 这应该排得上候选 :D
作者: carylorrk (carylorrk)   2014-05-09 03:50:00
推vector是认真的吗~
作者: Killercat (杀人猫™)   2014-05-09 04:08:00
相当认真啊...vector本来就可以这样用 o_oa二维就用vector<vector<int> > 取值一样可以c[a][b]vector唯一的问题就是边界要自己管理(如果需要的话)然后vector很贴心的帮你用operator&让你能转回传统arrayint* array = &v[0]; 好vector 不用吗 XD
作者: bbearh (Change)   2014-05-09 23:14:00
GlobalReAlloc
作者: uranusjr (←這人是超級笨蛋)   2014-05-10 03:33:00
原问题是 prepend 耶, std::vector 超不适合好吗...
作者: EdisonX (卡卡兽)   2014-05-10 13:04:00
@uranusjr,借问题我想问一般若已基于阵列,功能必要加入prepend,会怎做? 是否没什么优化的空间了 ?我的作法颇暴力就是了 Orz
作者: Killercat (杀人猫™)   2014-05-11 14:53:00
vector可prepend 不过的确,效能会很糟糕....
作者: uranusjr (←這人是超級笨蛋)   2014-05-11 20:33:00
如果一定要内存位址连续那也没什么招了吧, 或许可以模仿 std::vector 自己做一个前后都 preallocate 的容器..?
作者: Killercat (杀人猫™)   2014-05-11 21:44:00
这个我以前做过 用circular buffer来实作std::vector的界面,然后跟std::vector一样的内存双倍策略然后用memory pool来处理所有的segment management我记得有人有做过类似的东西,不算少见。只是这太深了不过基本上要解决效率问题 circular buffer是个解有兴趣可以做做看 反正vector source code都放在那给你抄,最麻烦的几个部分如[]等等眉眉角角照着写就好这东西真的要讨论我觉得要去算法版讨论了 =P
作者: AstralBrain   2014-05-11 23:09:00
to楼上:为什么不用std::deque就好 XD
作者: Killercat (杀人猫™)   2014-05-12 11:37:00
欸,对耶,当初是为什么要搞的那么麻烦(抱头)是因为要放memory pool的关系吗...

Links booklink

Contact Us: admin [ a t ] ucptt.com