关于C加加11的预置以及弃置函数,请详细说明
时间: 2023-11-28 16:48:21 浏览: 77
在C++11标准中,新增了一些预置函数和一些弃置函数,下面分别详细说明:
1. 预置函数
1.1 std::to_string
用于将数字类型转换成字符串类型,其定义如下:
```cpp
namespace std {
string to_string(int val);
string to_string(long val);
string to_string(long long val);
string to_string(unsigned val);
string to_string(unsigned long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string(long double val);
}
```
1.2 std::stoi
用于将字符串转换成整数类型,其定义如下:
```cpp
namespace std {
int stoi(const std::string& str, std::size_t* pos = 0, int base = 10);
long stol(const std::string& str, std::size_t* pos = 0, int base = 10);
long long stoll(const std::string& str, std::size_t* pos = 0, int base = 10);
unsigned long stoul(const std::string& str, std::size_t* pos = 0, int base = 10);
unsigned long long stoull(const std::string& str, std::size_t* pos = 0, int base = 10);
}
```
1.3 std::stof
用于将字符串转换成浮点数类型,其定义如下:
```cpp
namespace std {
float stof(const std::string& str, std::size_t* pos = 0);
double stod(const std::string& str, std::size_t* pos = 0);
long double stold(const std::string& str, std::size_t* pos = 0);
}
```
2. 弃置函数
2.1 auto_ptr
在C++11中,auto_ptr被弃置,被unique_ptr替代。auto_ptr存在的问题是:当auto_ptr被复制时,会发生所有权转移,导致原指针被释放,从而产生悬垂指针的问题。
2.2 register
在C++11中,register被弃置,原因是register关键字其实并不会对程序性能有任何提升,而且register关键字有可能会与一些优化策略发生冲突。
2.3 dynamic_exception_specification
在C++11中,dynamic_exception_specification被弃置,原因是该语法的效果可以通过noexcept关键字来替代,并且noexcept关键字更加简洁明了。
以上就是C++11新增的一些预置函数和弃置函数的详细说明。
阅读全文