1樓:匿名使用者
按照你的思路這樣改就可以了,原來-1的下標是會越界的,編譯都無法通過,因為++放在後就直接越界了,但是先++就不會了,還有陣列的下標要改成10,要不然就不對應了。
對於你的補充問題不是賦值不成功,其實已經成功賦值了,只是如果你把++放在ix_vec後面的話是原來ix_vec為0,但只執行賦值語句了以後ix_vec自增了,而你列印出來的是ivec[1]的值,此時你只是給ivec[0]賦了值,ivec[1]還沒有賦值,所以顯示出來是0,這樣解釋可夠清楚?說起來的話自增和自減這種東西還是少用點比較好,不就是要多寫幾個符號嘛,免得出現邏輯錯誤找起來更麻煩。
#include
#include
#include
using namespace std;
int main()
;vectorivec(10);
int ix_vec=-1;
int ix_ia=10;
while(ix_vec<9)
return 0;}
2樓:匿名使用者
你的程式中,第一個ivec[ix_vec]=ia[ix_ia];時,ix_vec是-1,下標越界了,導致程式錯誤
#include
#include
#include
using namespace std;
int main()
; vectorivec(10);
int ix_vec=-1;
int ix_ia=10;
while(ix_vec<9)
return 0;}
3樓:匿名使用者
這程式跟++一點關係也沒有
#include
#include
#include
using namespace std;
int main()
; vectorivec(ia,ia+10);
int ix_vec=0;
while(ix_vec<10)
} 直接用ivec[ix_vec]=ia[ix_ia]; 賦值是不行的,因為vector是個模板類,如果一個類的只有公有資料成員,可以這樣
如:class test
; test t = ;
4樓:搞笑點
#include
#include
#include
using namespace std;
int main()
; vectorivec(10);
int ix_vec=-1;
int ix_ia=10; //這裡改為10吧,//ivec[ix_vec]=ia[ix_ia]; 這裡沒必要賦值while(ix_vec<9)return 0;}
5樓:匿名使用者
程式最後少了個花括號吧
程式的輸入?沒有輸入語句啊
是不是想將ia陣列倒置
應該將ix_vec初始化為0
然後 while(ix_vex<10)
這樣ix_vec++是先使用ix_vec再對其加1的
6樓:問問題都不行
vectorivec(10);模板類
賦值介面為insert
ivec.insert(ivec.begin(),ia,ia+sizeof(ia)/sizeof(int));
如上是把ia中的所有元素都插入到ivec結點中
7樓:匿名使用者
int ix_vec=0;
ivec[++ ix_vec]=ia[ix_ia--];
測試通過,鬱悶
8樓:
int ix_vec=-1;
int ix_ia=9;
ivec[ix_vec]=ia[ix_ia];
//ivec[-1]下標有問題吧?
9樓:匿名使用者
那你執行後cout出來什麼?還有ix_vec初值應該是0吧
10樓:匿名使用者
其實很想要分不過有看沒懂,淚奔
問關於C盤的問題,問一個關於C盤的問題。。。
有幾個檔案是很隱藏的,估計你沒調出來。資料夾選項裡面有隱藏受保護的作業系統檔案 推薦 將前面的勾去掉,就看到了。一個是虛擬記憶體,一個是系統還原,還有一個是休眠。虛擬記憶體不要刪除的,你可以轉移到d盤,用優化大師可以搞定。系統還原可以關閉,沒什麼用的功能,我都關閉。右鍵我的電腦 屬性 系統還原,選中...
關於c的問題,關於c 的一個問題
以下給出的是在main裡面的方法,已經通過了測試,然後名稱空間用預設的就可以了 using system using system.collections.generic string s console.readline dictionarymap new dictionary foreach c...
關於C語言的問題,一個關於C語言的問題
123.456001 這你都發現了,了不起。計算機儲存是2進位制儲存。不要苛求保留幾位,這個在儲存方式上來說沒有意義在資料儲存中,除了2的幾次方分之幾外,如0.5,0.25,0.75,0.125等等也就是1 2,1 4,5 8等這些外 其他的都是近似儲存 舉個很簡單的例子,如0.1你可以手動算一下,...