打å°ä¼ é€’给打å°åŠŸèƒ½çš„Vector

时间:2018-10-02 15:09:02

标签: c++ function vector

This is the code that I have written

å°è¯•æ‰“å°çŸ¢é‡å€¼æ—¶å‡ºçŽ°é”™è¯¯ï¼Œæˆ‘无法弄清原因。 我将数组传递给了函数print(&v1)。 有人å¯ä»¥å¸®æˆ‘弄清楚为什么会å‘生此错误,以åŠæ˜¯å¦æœ‰æ›´å¥½çš„替代方法å¯ä»¥æ‰“å°å‡ºå‡½æ•°ä¸­çš„矢é‡å…ƒç´ ã€‚

1 个答案:

答案 0 :(得分:4)

您正确地使用了->中的print1而ä¸æ˜¯.(如print中的x->y)æ¥å¯¹å‘é‡çš„指针进行æ“作。之所以有效,是因为(*x).y等效于[],这æ„味ç€åœ¨è®¿é—®å‘é‡ä¹‹å‰ï¼Œæ‚¨å·²ç»æ­£ç¡®åœ°å–消了指å‘å‘é‡çš„指针。

[]除外。在这里,您还必须在使用cout << (*v)[x] << endl; 之å‰å–消引用指针。所以:

(*x)[]

(*x).y没有[]的缩写(也称为“语法糖â€ï¼‰ï¼Œå› æ­¤å¿…须手动进行。


错误消æ¯ä»¤äººå›°æƒ‘,因为在指针上使用x[y]是有效的-*(x+y)等效于v,这æ„味ç€æ‚¨æ­£åœ¨æ‰§è¡ŒæŒ‡é’ˆç®—术:您å¯ä»¥åƒä½¿ç”¨x一样使用å‘é‡æ•°ç»„(Cæ ·å¼ï¼‰ï¼Œç„¶åŽå°è¯•ä»Žæ­¤å‘é‡æ•°ç»„中获å–第<<个元素。幸è¿çš„是,编译器ä¸çŸ¥é“如何使用Vector coutå’Œ//[Required] //public string Name { get; set; } //[Required] //public string Description { get; set; } -但是,如果å¯ä»¥ï¼Œä»£ç å°†ç¼–译并执行您(å¯èƒ½ï¼‰ä¸å¸Œæœ›çš„æ“作。