C++ Vector error messages:
此错误消息是因为我正在使用int而不是sizeu调整向量的大小吗?或者因为我必须声明一个复制构造函数?
我用
no appropriate default constructor available:
see reference to function template instantiation 'void
std::_Uninit_def_fill_n<_FwdIt,_Diff,_Tval,_Alloc,Node>(_FwdIt,_Diff,const
_Tval *,_Alloc &,_Valty *,std::_Nonscalar_ptr_iterator_tag)' being compiledsee reference to function template instantiation 'void
std::_Uninitialized_default_fill_n>(_FwdIt,_Diff,const _Tval *,_Alloc &)'
being compiledwhile compiling class template member function 'void
std::vector<_Ty>::resize(unsigned int)'see reference to class template instantiation 'std::vector<_Ty>' being
compiled
存储在
1 2 3 4 5 6 7 8 9 | class MyClass { public: MyClass() { /* This ctor is required. */ } }; int main () { std::vector<MyClass> vec_name; vec_name.resize(10); // or else this will fail. } |
您不应该这样插入。
如果你在
我希望您的代码能够安静地崩溃和烧掉,而不是给出编译器错误。不过,可能发生的情况是向量实现试图帮助您,它用默认构造的实例填充了
简而言之:"我正在使用vector_name[pos]=myclass_obj分配元素"
这是对