直接问题:
这段代码,
#include <iostream>
using namespace std;
int main() {
std::string string = "9 9";
std::cout << string;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
9 9作为输出返回.
但是,在输入9 9此代码时,
#include <iostream>
using namespace std;
int main() {
std::string string;
std::cin >> string;
std::cout << string;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它输出9.为什么会这样?
我想这与空间有关,但有什么办法可以避免这种情况吗?我必须说空间是数字之间唯一有效的分离.
标题很明显.在我的例子中,为了简单起见,我避免使用例如unsigned int而不是int,因为它使编码更快更简单.(顺便说一句,我使用的是Android IDE,CppDroid)
然而,IDE经常提醒我隐式转换,例如,For循环,其中递增的变量(int)与向量的大小(size_t/unsigned int)进行比较.
我的问题是:类型转换需要时间吗?如果是这样,与其他常见操作相比,它们需要多长时间?在转换确实需要一些时间的情况下,是否值得正确定义变量以避免转换?