cin >> 读取字符串时遇到空格符结束
while(cin >> string)
关于getline
while(getline(cin , string)
遇到换行符'\n'结束,并且不读入'\n'
原型
istream& getline ( istream &is , string &str , char delim );
istream& getline ( istream& , string& );
参数
is 进行读入操作的输入流
str 存储读入的内容
delim 终结符
返回值
与参数is是一样的
功能
将输入流is中读到的字符存入str中,直到遇到终结符delim才结束。对于第一个函数delim是可以由用户自己定义的终结符;对于第二个函数delim默认为 '\n'(换行符)。
函数在输入流is中遇到文件结束符(EOF)或者在读入字符的过程中遇到错误都会结束。
在遇到终结符delim后,delim会被丢弃,不存入str中。在下次读入操作时,将在delim的下个字符开始读入。
关于C++的队列问题
队列属于FIFO,先进先出原则;
队列的定义quene<int> q;
方法:
q.push(i); 初始化
q.empty(); 判断队列是否为空;
q.front(); 队首元素;
q.pop(); 抛弃队首元素;
关于C++的栈:
属于LIFO,后进先出原则;
栈只有一端生长,实现栈时只需要一个数组stack和一个栈顶指针top;
string对象的操作
s.empty();
s.size();
s[n]
s1+s2;
s1=s2;
s1== s2;
对于vector;
vector<int> ivec;声明一个空的vector;
vector<int> ivec(10);声明一个10个大小的vector;
for(vector<int>::size_type ix = 0;ix!=10;++ix)
ivec[ix] = ix;
这样初始化是不对的,因为只有ivec[ix]存在时才可以用下标获取对应元素,正确的写法是
vector<int> ivec;
for(vector<int>::size_type ix = 0;ix!=10;++ix)
ivec.push_back(ix);对于迭代器
vector<int>::iterator iter = ivec.begin();
表示第一个元素
vector<int>::iterator iter = ivec.end();
表示最后一个元素的后一个,也就是不存在的,只表示已经处理完所有的元素