Sadece öğreniyorum ve muhtemelen aptal bir sorum var.std :: list yeniden boyutlandırma sonuçlarını yeniden boyutlandırma
2 konteynere sahibim, biri bir vektör, diğeri ise bir listedir. İkisi de 1,2,3,4 numaralı mürekkeplerle doldurulur. İlklendirildikten sonra kapsayıcıyı yedi boyutlu olarak yeniden boyutlandırdıktan sonra kapsayıcının içeriğini yazdırayım.
List: 1
List: 2
List: 3
List: 4
List: 0
List: 1994995248
List: 0
Vector: 1
Vector: 2
Vector: 3
Vector: 4
Vector: 0
Vector: 0
Vector: 0
açıkça bunu önlemek için 0s ekliyorum liste söylemek zorunda mısın: Ben alıyorum çıktısında
#include <iostream>
#include <vector>
#include <list>
int main()
{
std::list<int> lst= {1,2,3,4};
std::vector<int> vec = {1,2,3,4};
lst.resize(7);
vec.resize(7);
for (auto p = lst.begin(); p!=lst.end(); ++p)
std::cout<<"List: "<<*p<<std::endl;
for (auto p = vec.begin(); p!=vec.end(); ++p)
std::cout<<"Vector: "<<*p<<std::endl;
return 0;
}
?
Hangi derleyiciyi kullanıyorsunuz? Burada yeniden üretemiyorum gibi görünüyor: http: //ideone.com/9BwQJ6. Yeniden boyutlandırırken değeri belirtmezseniz, başlangıç değeri olmalıdır. – taocp
http://www.cplusplus.com/reference/list/list/resize/ – Nic007
Aslında, aslında noktaları doldurmak için varsayılan değeri kullanmalı gibi görünüyor, ancak 'lst.resize (7, 0)' ı çağırmayı deneyebilirsiniz ; 'sadece ne olacağını görmek için. – cxyzs7