读书人

求解决几个初学c++的小疑点呃

发布时间: 2012-08-29 08:40:14 作者: rapoo

求解决几个初学c++的小问题呃

1.得到一个最靠近中间的元素
vector<int>::iterator mid = vi.begin() + vi.size() / 2
vi.begin()和vi.size()的数据类型不一样啊 为什么的可以这么加 为什么需要这么加


2.

C/C++ code
#include <iostream>#include <vector>#include <string>#include <cctype>using namespace::std ;int main (){    /*输入一段文本到vector对象 每个单词存储为vector中的一个元素      把vector对象中每个单词转化为大写字母 输出vector转化后的元素      每8个单词为一行 */    vector<string> m1 ;    string word ;    while ( cin >> word )        m1.push_back(word) ;    for ( vector<string>::size_type num1 = 0 ; num1 != m1.size() ; num1++ ) {        for ( string::size_type num2 = 0 ; num2 != m1[num1].size() ; num2++ ) {            m1[num1][num2] = toupper(m1[num1][num2]) ;        }        if ( ( num1 + 1 ) % 8 == 0 )            cout << endl ;        else            cout << m1[num1] ;    }      system ("pause") ;    return 0 ;}//总是提示错误....可找了半天木有找到啊 ,在VS2010下编译


[解决办法]
1、vi.begin()返回的是指向vector首个元素的指针,vi.size()则是返回vector的元素个数,相加相当于对指针进行了位移,加几就是向后移动几位,指向之后的第几个元素。
2、把错误贴出来……
3、没看懂
[解决办法]
g++ 编译正常。

[解决办法]
头文件加个#include <windows.h>试下
[解决办法]
在VS2008编译正常
[解决办法]
VS2010编译通过

读书人网 >C++

热点推荐