auto
auto不能识别含两个及以上double的类型,e.g.std::pair<double,double> or std::vector<double>
- 若类型名太长且引用次数多,可使用别名
using
auto常用于for循环计数变量,e.g.
std::vector vec {1,2,3,4};
for(auto elem : vec){
std::cout << elem << " ";
}
auto常用于函数传参,使函数可以接受任意类型的参数,e.g.
void borges(auto cuento){
std::cout << cuento << std::endl;
}
borges(std::string{"el sur"});//auto deduced as `std::string`
初始化变量
- 初始化变量可以使用
std::vector或std::map进行统一初始化,也可以进行结构化绑定(Structured Binding)(需要已知变量数,不可用于std::vector一类)
//统一初始化
#include
int main() {
std::vector v{1, 2, 3, 4, 5};
return 0;
}
---
#include
#include
//结构化绑定
auto [var1, var2, ..., varN] = expression;
---
std::tuple getClassInfo() {
std::string className = "CS106L";
std::string location = "online";
std::string language = "C++";
return {className, location, language};
}
int main() {
auto [className, location, language] = getClassInfo();
std::cout << "Join us " << location << " for " << className << " to learn " << language << "!" << std::endl;
return 0;
}
Comments NOTHING