无聊的写一写C++ primier感想

来源:互联网 发布:mac梦幻西游启动失败 编辑:程序博客网 时间:2024/06/10 23:25

第三章

1.getline()一次读入一整行;cin一次读入一个词


2.对于string类的输入函数,它会自动忽略开头的空白(空格、制表符、换行等等),从第一个真正的字符开始直到下一个空白。

对于getline()函数,它会保存字符串中的空白符,它读入数据,直到遇到换行符位置。

3.tolower(),toupper()大小写切换;ispunct()判断标点

4. 
string s;cout<<s[0]<<endl;
字符串S是一个空字符串,第一个元素是未知的,引用非法。

5.vector<vector<int>>描述元素为vector的vector对象

6.vector<T> v2(v1)等价于vector<T> v2=v1
vector<T> v1(10)初始化了10个0

7.
vector<T> v1;for(int i=0;i!=100;++i)v1.push_back(i);
初始化赋值到尾端

8.给vector定义一个大小
vector<T> ivec;//非法ivec[0]=42;vector<T> ivec(10);//合法ivec[0]=42;

9.迭代器的begin和end的用法,end指向尾元素的下一个位置
#include <iostream>  #include <string>  #include <vector>  using namespace std;  void main()  {         vector<int> text(10,5);      for (auto it = text.begin(); it != text.end();it++) //注意auto    {          *it = *it * 2;          cout<<*it<<endl;          }  } #include <iostream>  #include <string>  #include <vector>  using namespace std;  void main()  {         vector<int> text(10);      for (int i = 0; i < 10;i++)      {          cin>>text[i];      }      for (auto vector_begin = text.begin(), vector_end = text.end();vector_begin != vector_end;vector_begin++)       {          vector_end--;          cout<<*vector_begin + *vector_end<<endl;//注意vector_begin的用法          }  }  


10.
mid=beg+(end-beg)/2,而非mid=(beg+end)/2


11.复杂数组的声明
int *a[10];  //a数组含有10个指针整形  int &a[10];  //错误,不存在引用的数组  int (*a)[10]; //a是一个指针,指向一个含有10个整数的数组  int (&a)[10]; //a是一个引用,引用一个含有10个整数的数组  int *(&a)[10]; // a是数组的引用,数组含有十个指针 

12.
unsigned size=1024;int a[size];//非法
const unsigned size=1024;int a[size];//常量表达式为合法
13.
string sa[10];int ia[10];//初始化10个0int main(){string sa2[10];int ia2[10];//初始化10个未知值}

14.
#include <iostream>  #include <string>  #include <vector>  using namespace std;  void main()  {         int a[10] = {0,1,2,3,4,5,6,7,8,9};      int b[10] = {0,1,2,3,4,5,6,7,8,9};      vector<int> v1(a,a+10);  //通过数组初始化vector    vector<int> v2(b,b+10);      int Myflag = 0;      if (sizeof(a) == sizeof(b)) //可以通过sizeof(a)/sizeof(int)得出元素个数    {          for (int i=0;i<10;i++)          {              if (a[i] == b[i])              {                  Myflag++;              }          }      }      if (v1 == v2)  //vector比较比数组简洁    {          cout<<"Equal"<<endl;      }      else      {          cout<<"Not Equal"<<endl;      }  }  

15.
#include <iostream>  #include <string>  #include <vector>  using namespace std;  void main()  {         char a[100] = "Hello World";      char b[100] = "I want an apple";      char c[200];      strcpy(c,a);  //strcpy(a,b)将b拷贝给a    strcat(c," "); //strcpy(a,b);将b拷贝给a    strcat(c,b);      cout<<c;  }

string s1="hello";string s2="world";string s3=s1+" "+s2;//利用string标准库拼接字符串比C风格的方法更安全








原创粉丝点击