C++中vector的使用:输出问题
vector的数据大小(元素个数)需要用b.size()来确定,而数组中的元素个数是用sizeof(a)/sizeof(a[0])
#include <iostream>
#include<vector>
using namespace std;
vector<int>min( )
{
int target;
int k;
cout<<"please put numbers in it:";
int a[10];
for ( k = 0; k < 10; ++k) {
cin>>a[k];
}
cout<<"please put target in it:";
cin>>target;
vector<int> result;
int res = sizeof(a)/sizeof(a[0]);
for(int i = 0;i < res;++i)
{
for(int j = i + 1;j < res;++j)
{
if(a[i] + a[j] == target)
{
result.push_back(i);
result.push_back(j);
}
}
}
return result;
}
int main(){
vector<int>b;
b = min();
int num =b.size();//***********为啥num总是6,前面a[]数组长度怎么变都没有用???********
cout<<num<<endl; //***********搞明白了,vector的数据大小(元素个数)需要用b.size()来确定,而数组中的元素个数是用sizeof(a)/sizeof(a[0])
for(int i=0;i< num;i++){ //****通过sizeof(V)只是可以得到数组V的大小
cout<<b[i]<<" ";
}
return 0;
}
这个是不用vector,就简单多了…
void fun(){
int target;
cout<<"please put numbers in it:";
int a[10];
for ( int k = 0; k < 10; ++k) {
cin>>a[k];
}
cout<<"please put target in it:";
cin>>target;
int num = sizeof(a)/ sizeof(a[0]); //********这边的num就没有问题!!!********
cout<<num<<endl;
for(int i = 0;i < num;++i)
{
for(int j = i + 1;j < num;++j)
{
if(a[i] + a[j] == target)
{
cout<<i<<" "<<j<<endl;
}
}
}
}
int main(){
fun();
return 0;
}