#C++ vector#
vector正常能不能在宣告的時候給它賦值? 還是必須要用C陣列?
另外,那個push_back是怎么work?是把所有資料往前位移然后擠掉第一個還是替換最后一個?把push_back放在回圈里有什么好處嗎?
uj5u.com熱心網友回復:
vector<int> vec={1,2,3,4,5};push_back應該是放到最后,而他不是簡單的放入,它是根據你傳入的引數來確定是復制,還是直接移動,
放到回圈里只是一個正常操作啊,如果有100000個資料,難道你要寫100000行push_back??
uj5u.com熱心網友回復:
名字都叫push_back了,那顯然是推到尾部的意思嘛。其他的,樓上的大佬已經吐槽的很好了,我就不吐槽了
uj5u.com熱心網友回復:
vector正常能不能在宣告的時候給它賦值?必須可以,不僅僅是vector,map和list也是類似的。set和queue沒試過,估計也類似。
沒研究過push_back的原理,不過,網上有推薦使用emplace_back代替push_back的。具體可以看stl的源代碼。我個人還是傾向于用push_back的,因為作業上很難碰到大量資料的情況(特定公司除外)
uj5u.com熱心網友回復:
c++11后,push_back內部就是呼叫emplace_back
uj5u.com熱心網友回復:
能不能用vector<Type> a(n,{//初始化數值n個});這種形式?另外vector,我宣告n=3,它下表從多少開始?
uj5u.com熱心網友回復:
又到多少結束?uj5u.com熱心網友回復:

下標(索引)都是從0開始,到n-1結束
uj5u.com熱心網友回復:
那個push.back()是一個成員函式,把值推到最后并把大小增加1uj5u.com熱心網友回復:
問題是,怎么覆寫一個值呢?uj5u.com熱心網友回復:
iter = vec.erase(iter);vec.insert(iter);
uj5u.com熱心網友回復:
能啊,vector<int> v(10,2);就是給v初始化成里面有10個值,每個值的大小都是2。但沒有vector<int> v(10,{1,2,3……})這種操作。
uj5u.com熱心網友回復:
覆寫一個值就和普通陣列賦值一樣。比如vector<int> v(10);是初始化v有10個值,每個值都為0,你要改變第0個元素的值,就v[0]=9,這樣就覆寫了v[0]的值了
uj5u.com熱心網友回復:
1、樓上的回答都比較全啦,建議可以看看書,查查資料啥的,自己先理解一下~2、推薦個網站:https://zh.cppreference.com/w/cpp,可以在上邊找找看。
加油,祝樓主好運!
uj5u.com熱心網友回復:
這個好像不行吧。下標在vector中不是只能用于讀取嗎
uj5u.com熱心網友回復:
問題是,怎么覆寫一個值呢?
覆寫一個值就和普通陣列賦值一樣。比如vector<int> v(10);是初始化v有10個值,每個值都為0,你要改變第0個元素的值,就v[0]=9,這樣就覆寫了v[0]的值了
這個好像不行吧。下標在vector中不是只能用于讀取嗎
不僅是用于讀取,也可以賦值,就像C語言里a[0]=1;一樣,就把a[0]的值賦成了1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/29345.html
標籤:C++ 語言
上一篇:關于C語言
下一篇:C語言簡單選擇排序流程圖
