关于向量的问题
我的是VS08new project -> General -> Empty Project
我建立一个main.cpp放到工程里面以下是代码
#include <iostream>
#include <vector>
//要包含这个头文件
using namespace std;
int main(void)
{
vector<int> a(10);//定义了10个整数元素的向量,但没有给出初值,因而,其值是不确定滴
vector<int> b(10,1);//定义了10个证书元素的向量,且给出每个元素的初值为1
vector<int> c(b); //用另一个现成的向量来创建一个向量
vector<int> d(b.begin(),b.begin() + 3);//定义了其值依次为b向量中第0到第2个元素的向量
cout << " 1--- ";
for (int i=0;i<d.size();i++)
cout << d << ""; //使用下标形式,a是向量元素操作,和数组一样
cout << '\n'; cout << " 2--- ";
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";//使用遍历器方式,*it是指针间接形式,它的意思是it所指向的元素值
cout << '\n'; cout << " 3--- ";
a.assign(b.begin(),b.begin()+3); //b向量的0~2元素构成向量赋给a
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
cout << '\n'; cout << " 4--- ";
a.assign(8,2); //使a向量中只含0-7元素,且赋值给2
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
cout << '\n'; cout << " 5--- ";
int x = a.back();//将a中最后一个元素值赋给整数变量x
cout << "x = " << x << endl;
cout << " 6--- ";
int y = a.front(); //将a中第一个向量元素赋给整数变量y
cout << "y = " << y << endl;
cout << " 7--- ";
a.clear();
if (a.empty()) cout << "a is empty!" << endl;
cout << " 8--- ";
a.resize(5); //将向量元素个数调至5个,多删少补,其值随机
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
cout << '\n'; cout << " 9--- ";
a.resize(6,4); //将向量元素个数调至5个,多删少补,其值均为4
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
cout << '\n'; cout << "10--- ";
a.push_back(100);//在向量a最后插入一个元素,其值为100
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
cout << '\n';cout << "11--- ";
a.pop_back(); //删除a向量最后一个元素
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
for (int i=0;i<a.size();i++)
a = i;
cout << '\n'; cout << "12--- ";
a.erase(a.begin()+2);
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << ""; //删除第三个位置的元素
cout << '\n'; cout << "13--- ";
a.insert(a.begin() + 3, 44); //在第四个位置插入一个元素
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
cout << '\n'; cout << "13--- ";
a.erase(a.begin()+2,a.begin()+4);//删除第三个位置到第四个位置
for (vector<int>::iterator it = a.begin();it!=a.end();++it)
cout << *it << "";
cout << '\n'; cout << "14--- ";
if (a==b) //向量的比较操作,操作符还有!=,<,<=,>,>=,
cout << "a equal b";
else
cout << "a not equal b";
cin.get();
return 0;
}
执行出来的倒是没问题,我的问题是这个
1>------ Build started: Project: Vector_text, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>c:\documents and settings\gx\my documents\visual studio 2008\projects\vector_text\vector_text\main.cpp(13) : warning C4018: '<' : signed/unsigned mismatch
1>c:\documents and settings\gx\my documents\visual studio 2008\projects\vector_text\vector_text\main.cpp(52) : warning C4018: '<' : signed/unsigned mismatch
1>Linking...
1>LINK : C:\Documents and Settings\GX\My Documents\Visual Studio 2008\Projects\Vector_text\Debug\Vector_text.exe not found or not built by the last incremental link; performing full link
1>Embedding manifest...
1>Build log was saved at "file://c:\Documents and Settings\GX\My Documents\Visual Studio 2008\Projects\Vector_text\Vector_text\Debug\BuildLog.htm"
1>Vector_text - 0 error(s), 2 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
编译过去了,这个报错是怎么回事? 2 Warning是啥意思。怎么让他不报错??问完了。
报错的是这两个
for (int i=0;i<d.size();i++)13行
for (int i=0;i<a.size();i++) 52行 这是开/W3才出现的警告。
vector.size()返回的是无符号整数unsigned int
而你在for中声明的i是有符号的int
改成for(unsigned int i = 0; i<a.size(); i++)就没问题了。 谢谢谢谢,灰常感谢
页:
[1]