最全C++知识点--字符串、向量和数组

1 位于头文件的代码一般来说不应该使用using声明。头文件的内容会拷贝到所有引用它的文件中,如果头文件里有using声明,那么每个使用该头文件的文件就都会有这个声明。

2 读入一整行的函数:

string mystring;

while (getline(cin , mystring)){

    cout<<mystring<<endl;

}

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

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

const string s = "keep out!";

for (auto &c:s) {

    cout << c << endl;

}

C的类型是const char&;

4 vector对象集合初始化:

vector<int> ivec;

vector<int> ivec2(ivec);

vector<int> ivec3=ivec;

//vector<string> svec(ivec);类型不匹配

vector<string> v1{"a","an","the"};

//vector<string> v1("a","an","the");

vector<int> ivec4(10,-1);

5 使用vector注意事项:

1:引用不可以成为vector的元素,因为其不是对象。

2:可以用花括号初始化每一个值。

3:可以用括号指定元素个数或相同的元素值。

4:只能使用直接初始化,不可以使用拷贝初始化(vector之间的拷贝是可行的,但要保证类型相同)

vector<int> ivec5;

ivec5[0]=42;

不合法,空vector,给第一个元素赋值是错误的。

6 迭代器

vector<int>::iterator it;

string::iterator it2;

vector<int>::const_iterator it3; //只能读

string::const_iterator it4;

7 数组问题

int a[]={0,1,2};

//int a2[]=a; 不允许使用一个数组初始化另一个数组

//a2=a;

8 复杂的数组

//int &refs[10]=/*?*/; 不存在引用的数组

int (*Parray)[3]=&a; //Parray指向一个含有3个整数的数组

int (&arrRef)[3]=a; //引用一个含有3个整数的数组

int *(&arry)[10]=ptrs;   //arry是数组的引用,改数组含有10个指针 

9 C标准库String函数

strlen(p) 返回p的长度,空字符不计算在内

strcmp(p1,p2) 比较p1和p2的相等性

strcat(p1,p2)将p2附加到p1之后返回p1

Strcpy(p1,p2)将p2拷贝给p1,返回p1

10 C风格字符串

string s5("hello world");

//char *str=s5;不能用string对象初始化char*

const char *str1=s.c_str();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值