求解决几个初学c++的小疑点呃
求解决几个初学c++的小问题呃
1.得到一个最靠近中间的元素
vector<int>::iterator mid = vi.begin() + vi.size() / 2
vi.begin()和vi.size()的数据类型不一样啊 为什么的可以这么加 为什么需要这么加
2.
------解决方案--------------------
1、vi.begin()返回的是指向vector首个元素的指针,vi.size()则是返回vector的元素个数,相加相当于对指针进行了位移,加几就是向后移动几位,指向之后的第几个元素。
2、把错误贴出来……
3、没看懂
------解决方案--------------------
g++ 编译正常。
------解决方案--------------------
头文件加个#include <windows.h>试下
------解决方案--------------------
在VS2008编译正常
------解决方案--------------------
VS2010编译通过
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编译通过