#include<iostream>
#include<cstring>
#include<vector>
#include<stdio.h>
using namespace std;
class cstr{
private:
vector<char>a;
int len;
public:
void clear(){
a.clear();
len=0;
}
const int size(){
return len;
}
void reserve(const int num){
a.reserve(num);
}
void pop_back(){
a.pop_back();
len--;
}
void push_back(const char v){
a.push_back(v);
len++;
}
void push_chars(const char*v){
int lenv=strlen(v);
reserve(lenv+10);
for(int i=0;i<lenv;i++)push_back(v[i]);
}
void push_cstr(cstr&v){
int lenv=v.size();
reserve(lenv+10);
for(int i=0;i<lenv;i++)push_back(v[i]);
}
cstr(const char*init){
clear();
push_chars(init);
}
cstr(){
clear();
reserve(10);
len=0;
}
char operator[](const int p){
return this->a[p];
}
cstr operator=(cstr v){
if(this==&v)return*this;
this->clear();
this->reserve(v.size()+10);
for(int i=0;i<v.size();i++)this->push_back(v[i]);;
return *this;
}
cstr&operator=(const char*v){
int lenv=strlen(v);
this->clear();
this->reserve(lenv+10);
for(int i=0;i<=lenv;i++)this->push_back(v[i]);
return *this;
}
cstr&operator+=(const char*v){
int lena=this->len,lenv=strlen(v);
this->reserve(lena+lenv+10);
for(int i=0;i<lenv;i++)this->push_back(v[i]);
return*this;
}
cstr operator+(const char*v){
int lenv=strlen(v),lena=this->size();
cstr ans;
for(int i=0;i<lena;i++)ans.push_back(this->a[i]);
for(int i=0;i<lenv;i++)ans.push_back(v[i]);
return ans;
}
void charsit(char*v){
for(int i=0;i<len;i++)v[i]=a[i];
}
void getcstr(char stop){
char num;
bool fir=true;
while(num!=stop||fir){
num=getchar();
push_back(num);
fir=false;
}
return;
}
void getcstr(){
getcstr('\n');
}
friend istream&operator>>(istream&,cstr&);
friend ostream&operator<<(ostream&,cstr&);
friend cstr operator+(const char*,cstr&);
friend cstr operator+(cstr&,cstr&);
};
istream&operator>>(istream&input,cstr&str){
char num='a';
while(true){
num=getchar();
if(num=='\n'||num==' '||num=='\r')break;
str.push_back(num);
}
return input;
}
ostream&operator<<(ostream&output,cstr&str){
for(int i=0;i<str.size();i++)putchar(str[i]);
return output;
}
cstr operator+(const char*p,cstr&v){
int lena=strlen(p),lenv=v.size();
cstr ans;
for(int i=0;i<lena;i++)ans.push_back(p[i]);
for(int i=0;i<lenv;i++)ans.push_back(v[i]);
return ans;
}
cstr operator+(cstr&a,cstr&v){
int lena=a.size(),lenv=v.size();
cstr ans;
for(int i=0;i<lena;i++)ans.push_back(a[i]);
for(int i=0;i<lenv;i++)ans.push_back(v[i]);
return ans;
}
cstr a="114514",b="1919810";
int main(){
cout<<a+b;
return 0;
}
E:\cstr.cpp In function 'int main()':
128 10 E:\cstr.cpp [Error] cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&'
128 10 E:\cstr.cpp [Error] cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&'
1 E:\cstr.cpp from E:\cstr.cpp
602 5 D:\c++\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\ostream [Note] initializing argument 1 of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = cstr]'
要怎么调