我有两个字符串,我想比较一下:String和String:.是否有一个库函数在传递这两个字符串时会返回true,但是对于say String和OtherString?
确切地说,我想知道一个字符串是否是另一个字符串的前缀.
可能重复:
为什么使用迭代器而不是数组索引?
string::iterator it;
for (it = str.begin(); it < str.end(); it++)
cout << *it;
cout << endl;
Run Code Online (Sandbox Code Playgroud)
为什么不:
for (int i = 0; i < str.size(); i++)
cout << str[i];
cout << endl;
Run Code Online (Sandbox Code Playgroud)
似乎string :: iterator也没有提供范围检查.我们为什么要使用string::iterator而不是索引?
谢谢.
我想建立std::string一个std::vector<std::string>.
我可以使用std::stringsteam,但想象有一个更短的方式:
std::string string_from_vector(const std::vector<std::string> &pieces) {
std::stringstream ss;
for(std::vector<std::string>::const_iterator itr = pieces.begin();
itr != pieces.end();
++itr) {
ss << *itr;
}
return ss.str();
}
Run Code Online (Sandbox Code Playgroud)
我怎么可能这样做?
我正在学习基本的C++,现在我从用户那里得到了一个字符串,我想检查他们是否输入了整个文件名(包括.txt).我有字符串,但如何检查字符串是否以".txt"结尾?
string fileName;
cout << "Enter filename: \n";
cin >> fileName;
string txt = fileName.Right(4);
Run Code Online (Sandbox Code Playgroud)
该Right(int)方法仅适用于CString,因此上述代码不起作用.如果可能的话,我想使用常规字符串.有任何想法吗?
对于你们中的一些人来说这可能是个简单的问题.但我想知道a std::string是否是一个容器.容器我的意思是容器,例如std::vector,std::list和std::deque.
由于std::basic_string<>接受除积分字符之外的其他类型,但也通过使用字符数组进行优化.我不清楚它属于哪个类别.
这将编译:
#include <string>
#include <iostream>
int main() {
std::basic_string<int> int_str;
int_str.push_back(14);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是通过添加这一行:
std::cout << int_str << std::endl;
Run Code Online (Sandbox Code Playgroud)
它不会.因此,通过这些事实,我可以得出结论,std :: basic_string不适用于除字符之外的其他类型.
这可能是一个奇怪的问题.我需要知道这个的原因是因为我正在研究一个框架而我仍然无法确定"字符串"会落在哪个类别中.
在PHP这样的脚本语言中有这样的for循环会是一个非常糟糕的主意:
string s("ABCDEFG");
int i;
for( i = 0; i < s.length(); i ++ )
{
cout << s[ i ];
}
Run Code Online (Sandbox Code Playgroud)
这是一个例子,我不是在构建这样的程序.(对于那些觉得他们必须告诉我为什么这段代码< 在这里插入不好的东西 >>的人
如果将此C++示例转换为类似的PHP脚本,则会在每个循环周期计算字符串的长度.这将导致现实脚本中的巨大性能损失.
我认为这同样适用于C++程序,但是当我看一下教程,几个开源库和其他代码时,我发现循环的限制器没有预先计算.
s吗?我是C++的新手,拥有更多的C经验.
我正在编写一个将使用字符串类的程序,并开始怀疑"length()"方法的效率.
我意识到虽然我对这个问题没有一个好的答案,所以想知道这个和类似问题的答案是否存在于某个地方.虽然我能够确定自己代码的运行时间,但在提供代码方面我有点不知所措,所以我发现我无法准确判断程序的效率.
是否有c ++文档(在线或"man"格式)包含有关所提供代码的运行时的信息?
编辑:我一般对此感兴趣,而不仅仅是string :: length.
c++ ×7
stdstring ×2
string ×2
containers ×1
iterator ×1
performance ×1
prefix ×1
stl ×1
stringstream ×1