在这里填写新手,我对代码中的 newline 提出了一个快速的问题。因此,我知道插入using namespace std
是不好的做法,在编写程序时,我避免使用cout
和cin
而不先添加std::
部分。但我认为,由于我没有导入命名空间库,因此可以将其注释掉。但是,当我这样做时,变量的string
名称变得无法识别(它下面的红线)。当我允许再次导入命名空间时,红线消失。变量string
仅在命名空间库中可用吗?
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
//using namespace std;
// read and compare names
int main()
{
std::cout << "Please enter two names \n";
string first;
string second;
std:: cin >> first >> second; // read two strings
if (first == second) std::cout << "that's the same name twice! \n";
if (first < second) std::cout << first << " is alphabetically before "
<< second << '\n';
if (first > second) std::cout << first << " is alphabetically after " <<
second << '\n';
return 0;
}
答案 0 :(得分:1)
如果您不包括using namespace std
,则需要说出
std::string first;
std::string second;
因为string
也已在standard
命名空间(以及cout
等)中定义。
是的,没错,string
仅在standard
中定义。 string
是一个对象(不是原始类型),正是这个对象使您可以进行if(first==second)
比较。否则,比较字符串的“正常”方式是使用strcmp()
或类似的方式。