1.cpp
#include
using std::cout;
using std::endl;
int main()
{
int sum=0,val=50;
while(val<=100)
{
sum+=val;
val++;
}
cout<<"Sum of 50 to 100 inclusive is "< 2.cpp
#include
using std::cout;
using std::endl;
int main()
{
int val=10;
while(val>=0)
{
cout< 3.cpp
#include
using std::cin;
using std::cout;
using std::endl;
int main()
{
int val1,val2,tmp;
cout<<"Enter two integer:";
cin>>val1>>val2;
if(val1=val2)
{
cout< 4.cpp
#include
#include
using std::string;
using std::cin;
using std::cout;
using std::endl;
struct Sales_data
{
string Bookno;
unsigned int sold={0};
double revenue{0.0};
};
int main()
{
Sales_data temp;
double price=0.0;
while(cin>>temp.Bookno)
{
cin>>temp.sold>>price;
temp.revenue=temp.sold*price;
cout< 5.cpp
#include
#include
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::cerr;
struct Sales_data
{
string Bookno;
unsigned int sold={0};
double revenue{0.0};
};
int main()
{
Sales_data temp1,temp2;
double price=0;
cin>>temp1.Bookno>>temp1.sold>>price;
temp1.revenue=temp1.sold*price;
price=0;
cin>>temp2.Bookno>>temp2.sold>>price;
temp2.revenue=temp2.sold*price;
if(temp1.Bookno==temp2.Bookno)
cout< 6.cpp
#include
#include
using std::string;
using std::cin;
using std::cout;
using std::cerr;
using std::endl;
struct Sales_data
{
std::string Bookno;
unsigned int sold={0};
double revenue{0.0};
};
int main()
{
Sales_data temp1,temp2;
double price=0.0;
if(std::cin>>temp1.Bookno)
{
std::cin>>temp1.sold>>price;
temp1.revenue=temp1.sold*price;
price=0;
while(std::cin>>temp2.Bookno)
{
std::cin>>temp2.sold>>price;
temp2.revenue=temp2.sold*price;
price=0;
if(temp1.Bookno==temp2.Bookno)
{
temp1.sold+=temp2.sold;
temp1.revenue+=temp2.revenue;
}
else
{
std::cerr<<"not the same isbn"< 7.cpp
#include
#include
using std::string;
using std::cin;
using std::cout;
using std::cerr;
using std::endl;
struct Sales_data
{
std::string Bookno;
unsigned int sold={0};
double revenue{0.0};
};
int main()
{
Sales_data total,temp;
double price=0.0;
if(std::cin>>total.Bookno)
{
std::cin>>total.sold>>price;
total.revenue=total.sold*price;
while(std::cin>>temp.Bookno)
{
std::cin>>temp.sold>>price;
temp.revenue=temp.sold*price;
price=0;
if(total.Bookno==temp.Bookno)
{
total.sold+=temp.sold;
total.revenue+=temp.revenue;
}
else
{
std::cout< 3-2-1.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string line;
while(getline(cin,line))
cout< 3-2-2.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string line;
while(cin>>line)
cout< string类的输入运算符会忽略空白,getline函数会存储空白。
3-4-1.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string st1,st2;
while(cin>>st1>>st2)
{
if(st1>st2)
cout< 3-4-2.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string st1,st2;
while(cin>>st1>>st2)
{
if(st1.size()>st2.size())
cout< 3-5-1.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string st1,st2,st3;
cin>>st1>>st2>>st3;
cout< 3-5-2.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string st1,st2,st3;
cin>>st1>>st2>>st3;
cout< #include
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string s("Hello World!!!");
for(auto &c:s)
c='X';
cout< 一样的
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string s("Hello World!!!");
for(char &c:s)
c='X';
cout< 3-8-1.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(void)
{
string str="Hello World!!!";
decltype(str.size()) index=0;
for(;index!=str.size();index++)
str[index]='X';
cout< 3-8-2.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(void)
{
string str="Hello World!!!";
decltype(str.size()) index=0;
while(index!=str.size())
{
str[index++]='X';
}
cout< 不合法,使用下标访问空string的行为未定义。
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(void)
{
string trans,result;
while(cin>>trans)
{
for(auto c:trans)
{
if(!ispunct(c))
result+=c;
}
cout< 合法,c的类型是const char &。
vector包含的元素是vector。vector的元素类型不同。vector中含有10个null字符串。string#include
#include
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main()
{
vector ivec;
int temp;
while(cin>>temp)
{
ivec.push_back(temp);
}
return 0;
}
#include
#include
#include
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main()
{
vector svec;
string temp;
while(cin>>temp)
{
svec.push_back(temp);
}
return 0;
}
#include
#include
#include
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main()
{
vector v1;
vector v2(10);
vector v3(10,42);
vector v4{10};
vector v5{10,42};
vector v6{10};
vector v7{10,"hi"};
cout<<"v1";
if(v1.empty())
cout<<" is empty."< #include
#include
#include
#include
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main()
{
vector svec;
string tmp;
while(cin>>tmp)
svec.push_back(tmp);
for(auto &a:svec)
{
for(auto &b:a)
b=toupper(b);
}
for(auto c:svec)
cout< 不合法
vector ivec;
ivec.push_back(42);
vector ivec(10,42);
vector ivec{42,42,42,42,42,42,42,42,42,42};
vector ivec={42,42,42,42,42,42,42,42,42,42};
3-20-1.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector ivec;
int tmp;
while(cin>>tmp)
ivec.push_back(tmp);
for(decltype(ivec.size())index=0;index 3-20-2.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector ivec;
int tmp;
while(cin>>tmp)
ivec.push_back(tmp);
for(decltype(ivec.size())head=0,tail=ivec.size()-1;head #include
#include
#include
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main()
{
vector v1;
vector v2(10);
vector v3(10,42);
vector v4{10};
vector v5{10,42};
vector v6{10};
vector v7{10,"hi"};
cout<<"v1";
if(v1.empty())
cout<<" is empty."< for(auto it=text.begin();it!=text.end()&&!it->empty();it++)
{
for(auto pts=it->begin();pts!=it->end();pts++)
*pts=toupper(*pts);
cout<<*it<#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main(void)
{
vector ivec(10,21);
for(auto it=ivec.begin();it!=ivec.end();it++)
{
(*it)*=2;
cout<<*it<<" ";
}
cout< 3-24-1.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector ivec;
int tmp;
while(cin>>tmp)
ivec.push_back(tmp);
for(auto it=ivec.begin();it 3-24-2.cpp
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector ivec;
int tmp;
while(cin>>tmp)
ivec.push_back(tmp);
for(auto beg=ivec.begin(),end=ivec.end()-1;beg #include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector scores(11,0);
unsigned grade;
auto beg=scores.begin();
while(cin>>grade)
{
if(grade<=100)
(*(beg+grade/10))++;
}
for(decltype(scores.size())index=0;index!=scores.size();index++)
{
if(index 不能将两个迭代器相加。
string sa[10];//10个空字符串
int ia[10];//10个0
int main(){
string sa2[10];//10个空字符串
int ia2[10];//10个未初始化的值
}
数组与vector的相似之处是都能存放类型相同的对象,且这些对象本身没有名字,需要通过其所在位置访问。
数组与vector的最大不同是,数组的大小固定不变,不能随意向数组中增加额外的元素,虽然在某些情境下运行时性能较好,但是与vector相比损失了灵活性。
具体来说,数组的维度在定义时已经确定,如果我们想更改数组的长度,只能创建一个更大的新数组,然后把原数组的所有元素复制到新数组中去。数组也无法像vector那样使用size函数直接获取数组的维度。如果是字符数组,可以调用 strlen 函数得到字符串的长度;如果是其他数组,只能使用sizeof(array) / sizeof(array[0])的方式计算数组的维度。
遍历维度为10的数组,下标应该是从0到9.
#include
#include
using std::cout;
using std::endl;
int main()
{
int arr[10];
for(size_t index=0;index<10;index++)
arr[index]=index;
for(auto value:arr)
cout< 3-32-1.cpp
#include
#include
using std::cout;
using std::endl;
int main()
{
int arr_1[10];
int arr_2[10];
for(size_t index=0;index<10;index++)
{
arr_1[index]=index;
arr_2[index]=arr_1[index];
}
for(auto value:arr_2)
cout< 3-32-2.cpp
#include
#include
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector ivec1(10,0);
for(decltype(ivec1.size())index=0;index!=ivec1.size();index++)
ivec1[index]=index;
vector ivec2=ivec1;
for(auto value:ivec2)
cout< 因为数组定义在函数内部,且数组元素是内置类型,所以数组内元素此时都是未定义的值 。
指针p1前进到p2所在的位置,指向同一个元素。p1、p2两个指针类型不同时,该程序非法。
#include
#include
using std::cout;
using std::endl;
using std::begin;
using std::end;
int main()
{
int arr[10];
for(int *pbeg=begin(arr),*pend=end(arr);pbeg!=pend;pbeg++)
*pbeg=0;
for(auto value:arr)
cout< #include
#include
#include
using std::cout;
using std::endl;
using std::vector;
using std::begin;
using std::end;
int main()
{
int arr1[]={1,2,3,4,5};
int arr2[]={0,0,0,0,0};
vector ivec1{0,0,0,0,0};
vector ivec2(5,0);
for(size_t index=0;index<5;index++)
{
if(arr1[index]!=arr2[index])
goto wrong;
}
cout<<"Two array are equality."< 程序希望逐个输出hello,但是字符数组ca并没有以'\0'结尾,所以while循环无法结束。
指针本身的值是一个内存地址值,表示指针所指对象在内存中的存储地址。如果我们把两个指针加在一起,就是试图把内存中两个对象的存储地址加在一起,这显然是没有任何意义的。
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string str1{"Hello World"},str2("Hello World");
if(str1==str2)
cout<<"Two strings are equality."<0)
cout<<"str3 > str4"< #include
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
char str1[]="Hello";
char str2[]="World";
char str3[12]="";
strcpy(str3,str1);
strcat(str3," ");
strcat(str3,str2);
cout< #include
#include
#include
#include
using namespace std;
int main()
{
int arr[10];
default_random_engine rad;
for(size_t index=0;index<10;index++)
arr[index]=rad()%20;
vector ivec(begin(arr),end(arr));
for(auto value:ivec)
cout< #include
#include
#include
using namespace std;
int main()
{
default_random_engine rad;
uniform_int_distribution u(-10,10);
size_t index;
vector ivec;
int arr[10];
for(index=0;index<10;index++)
ivec.push_back(u(rad));
cout<<"there are the vector: ";
for(auto value:ivec)
cout< 3-43-1.cpp
#include
using namespace std;
int main()
{
int ia[3][4]=
{
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
for(int (&a)[4]:ia)
for(int b:a)
cout< 3-43-2.cpp
#include
using namespace std;
int main()
{
int ia[3][4]=
{
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
size_t x,y;
for(x=0;x<3;x++)
for(y=0;y<4;y++)
cout< 3-43-3.cpp
#include
using namespace std;
int main()
{
int ia[3][4]=
{
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
int (*p) [4],*q;
for(p=ia;p #include
using namespace std;
typedef int int_array[4];
int main()
{
int ia[3][4]=
{
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
int_array *p;
int *q;
for(p=ia;p #include
using namespace std;
int main()
{
int ia[3][4]=
{
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
for(auto &a:ia)
for(auto b:a)
cout<