cout缓冲区管理

来源:互联网 发布:淘宝上传宝贝描述模版 编辑:程序博客网 时间:2024/06/06 08:44

下面的程序是在vector中找元素,找到返回1,否则返回0;同时求出其相对位移vector::difference_type dif.

#include<iostream>#include<string>#include<vector>#include<stdlib.h>using namespace std;bool search(vector<int>::iterator &beg,vector<int>::iterator &ed,int c,vector<int>::difference_type&dif) {    vector<int>::iterator pt;    for (pt = beg; pt != ed; ++pt)        if (*pt == c) {            dif = pt - beg;            return 1;        }    return 0;}int main() {    vector<int>v{1,2,3,4,5,6,7,8,9};    vector<int>::difference_type dif=0;    cout << search(v.begin(), v.end(), 5,dif)<<" "<<dif<<endl;    system("pause");    return 0;}

返回结果:
这里写图片描述
显然,我们并没有得到想要的结果:1 4.
这是为什么呢?与cout有关。
我们把cout改写:

cout<<search(v.begin(),v.end(),5,dif);cout<<dif<<endl;

这里写图片描述

0 0
原创粉丝点击