简洁即是美:
*iter++这样的符号:
由于后自增操作符的优先级高于解引用操作,因此*iter++等效于*(iter++).子表达式iter++使iter加1,然后返回iter原值的副本作为该表达式的结果.
注意一些简洁的用法:
详细解释:*dest++ = *source++;
1)指针dest加1 (2)指针source加1(3)将source原来所指向的对象赋给dest原来所指向的对象.
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int arr1[]={1,2,3,4,5,8,9};
int *source = arr1;
size_t len=sizeof(arr1)/sizeof(*arr1);
int *desk=new int[len];
while(source!=arr1+len)
{
*desk++=*source++; //注意到这里数组确实复制过去了,但是地址跟着指过去了.
}
for(size_t i=0;i!=len;i++)//所以在这里.地址指回7个.下面的遍历才是正确的.
*--desk;
for(size_t i=0;i!=len;i++)
cout<<desk[i]<<endl;
return 0;
}
for循环的使用:
for(vector<string>::size_type ind=0;ind!=svec.size();++inde)
{
cout<<svec[ind];
if(ind+1!=svec.size())
cout<<" ";
}
这里自己注意重点是最后一个if.如果不是最后一个元素.就输出一个空格 。