dün geçirdiği neredeyse bir bizim ise bu şeyi ayıklama ve ben dize endekslerine 2D matris uygulamaya çalışmıştır o zamandan beri ben sonra ... C++ vektörü, başvurularda yineleme yapmıyor mu?
it.C
düşünmeyeclass CSqrMatrix(){
....
void insert(string str){
bool b = map.insert(str,m_size).second;
if (b){
m_size++;
vector<int> ve;
for (int i = 0; i < m_vect.size(); i++)
ve.push_back(m_default);
m_vect.push_back(ve);
for (auto v : m_vect)
v.push_back(m_default);
}
...
map<string,int> map;
vector < vector<int> > m_vect;
int m_default;
int m_size;
};
duramazsın Ben
m_vect[0][0] = 8;
gibi bir öğe ulaşmaya çalıştığında bazı eklemeler, ben geçersiz yazma ve segfault ... ve 0 oldu m_vect[0].size()
değerini var; Her şeyi denedim, nihayet
for (int i = 0; i < m_vect.size(); i++){
m_vect[i].push_back(m_default);
programı iyi çalıştı gibi normal birine her döngü için değişti ...
Yani bu demek, v
bir referecne Inst olduğunu, yapar ama elemanın yeni bir kopyası mı?
Teşekkür
Evet bu doğru. Bir referans istiyorsanız, 'i (auto & v: m_vect) 'yi deneyin. –