C++ 这个C++;带模板的代码段<;类向量>;
这里我只是使用test()函数并将向量传递给它。 在测试函数中,使用decltype()来推断类型,但输出是完全神秘的C++ 这个C++;带模板的代码段<;类向量>;,c++,C++,这里我只是使用test()函数并将向量传递给它。 在测试函数中,使用decltype()来推断类型,但输出是完全神秘的 #include <vector> #include <stdio.h> template<class Vector> void test(Vector& vec) { using E = decltype(vec[0]); for (int i=0; i < 10; ++i) { vec.pu
#include <vector>
#include <stdio.h>
template<class Vector>
void test(Vector& vec)
{
using E = decltype(vec[0]);
for (int i=0; i < 10; ++i) {
vec.push_back(E(i));
}
}
int main() {
std::vector<double> v;
test(v);
for (int i=0; i < 10; ++i) {
printf("%f\n", v[i]);
}
}
#包括
#包括
模板
无效测试(向量和向量)
{
使用E=decltype(vec[0]);
对于(int i=0;i<10;++i){
向量推回(E(i));
}
}
int main(){
std::向量v;
试验(五);
对于(int i=0;i<10;++i){
printf(“%f\n”,v[i]);
}
}
E
是双倍&
,而不是双倍
,如将推回
行更改为
vec.push_back(static_cast<E>(i));
请不要像“输出完全神秘”那样神秘。
using E = std::remove_reference_t<decltype(vec.at(0))>;
using E = typename Vector::value_type;