我可以像这样创建一个堆栈(来自标准库的适配器类模板)对象,
stack<int, vector<int>> myStack;
Run Code Online (Sandbox Code Playgroud)
我知道第二个模板参数意味着堆栈的底层数据结构.但为什么以下行不会给出编译时错误?
stack<int, vector<string>> myStack;
Run Code Online (Sandbox Code Playgroud)
请注意,我声明堆栈包含类型的元素int,但同时我声明底层数据结构保存string元素.
从功能上讲,它就好像是一堆字符串元素.
我的片段.kt:
viewModel.studentsTemp.observe(this, Observer {
adapter.submitList(it)
})
Run Code Online (Sandbox Code Playgroud)
MyViewModel.kt
private var _studentsTemp = MutableLiveData<MutableList<Student>>()
val studentsTemp: LiveData<MutableList<Student>> get() = _studentsTemp
init {
_studentsTemp.value = mutableListOf<Student>()
}
Run Code Online (Sandbox Code Playgroud)
仅当应用程序启动时(即创建 ViewModel 时,即当 init 块在 View Model 中运行时)才会调用 Observer。