相关疑难解决方法(0)

如何迭代字符串的单词?

我正在尝试迭代字符串的单词.

可以假设该字符串由用空格分隔的单词组成.

请注意,我对C字符串函数或那种字符操作/访问不感兴趣.另外,请在答案中优先考虑优雅而不是效率.

我现在最好的解决方案是:

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main()
{
    string s = "Somewhere down the road";
    istringstream iss(s);

    do
    {
        string subs;
        iss >> subs;
        cout << "Substring: " << subs << endl;
    } while (iss);
}
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

c++ string split

2895
推荐指数
43
解决办法
214万
查看次数

为什么"使用命名空间std"被认为是不好的做法?

我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::coutstd::cin直接代替.

为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?

c++ namespaces using-directives std c++-faq

2486
推荐指数
36
解决办法
78万
查看次数

在C++代码中使用/混合C?

在C++中使用C是不是很糟糕?

很多人告诉我在C++中使用C是不好的,因为它不那么安全,而且需要更多的内存管理.我一直告诉他们,只要你知道你在做什么,你删除你的"新"并释放你的"malloc",那么C不是问题.

我目前正在一个论坛上发表关于std::string与a 的争论char*.有些人说分配一个简单的char*内存块效率更高,只要你解除分配它就没问题了.另一方面,我们有人说这std::string是优越的,因为它没有涉及内存管理,但效率较低.

所以这里的主要问题是:

  • 混合C/C++不好吗?在编写C++时,你是否只能使用100%C++?

任何答案将不胜感激!

c c++ memory-management mixing

22
推荐指数
4
解决办法
2万
查看次数