2 つの文字列クラス オブジェクトを追加できます。
string str1="hello"
string str2="world"
string final =str1+str2;
また
string f=str1.append(str2);
これら2つの方法の違いは何ですか?? 追加する順序または実装またはその他??
operator+ は、2 つの文字列を一緒に追加し、値を持つ新しい文字列を生成します。append は文字列を受け取り、文字列の末尾に連結します。
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "Writing";
string str2= " a book";
str.append(str2);
cout << str << endl; // "Writing a book"
return 0;
}
また、追加には、その文字列の一部のみを追加するなど、より多くの機能があります
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str;
string str2="Writing ";
string str3="print 10 and then 5 more";
// used in the same order as described above:
str.append(str2); // "Writing "
str.append(str3,6,3); // "10 "
str.append("dots are cool",5); // "dots "
str.append("here: "); // "here: "
str.append(10,'.'); // ".........."
str.append(str3.begin()+8,str3.end()); // " and then 5 more"
str.append<int>(5,0x2E); // "....."
cout << str << endl;
return 0;
}
追加の詳細はこちら。
明らかにstr1
、2 つの操作間で値が異なります (最初の操作では以前と同じままで、2 番目の操作では と同じ値になりますf
)。
もう 1 つの違いはstr1 + str2
、一時的な文字列 (連結の結果) を作成してから適用することoperator=
です。このstr1.append()
呼び出しでは、一時変数は作成されません。
1 つoperator+
は、新しい文字列を作成する一方で、append
既存の文字列を変更します。したがって、あなたの例では、2番目のものは変更さstr1
れ、最初のものは変更されません。append
メソッドは よりも+=
に近い+
です。
+ 演算子の場合、最初に一時スペースを取り、その中に最初の文字列をコピーしてから、2 番目の文字列をコピーします。append() のように、最初の string の後に 2 番目の文字列を直接連結するため、append は次の点で優れています。パフォーマンスNo. のコピー操作が少ない