有人可以解释如何写,然后显示一个矢量,反转它,并显示反转的矢量?

时间:2014-02-14 18:14:55

标签: c++ vector

我更关心代码是如何工作的,而不是实际的代码。我只需要帮助理解它。任何帮助,将不胜感激:) PS:我是C ++ noob

3 个答案:

答案 0 :(得分:2)

粗略轮廓

#include<vector>
#include<string>
#include<cstdio>

// some code goes here
std::vector<std::string> myVectorOfStrings;
// some code goes here
myVectorOfStrings.push_back(someStringValue);  // this might be in a loop
// some code goes here
for( std::vector<std::string>::const_iterator itr = myVectorOfStrings.begin();
     itr != myVectorOfStrings.end();
     itr++ )
{
    cout << *itr << endl; // obviously you might want to be neater here
}

......等等。自己尝试(包括自己弄清楚反向部分),发布你的代码,以及你遇到的问题。

答案 1 :(得分:2)

#include <iostream>     
#include <algorithm>    
#include <vector>       

int main () {
  std::vector<int> myvector;

  // set some values: write in a vector
  for (int i=1; i<10; ++i) myvector.push_back(i);   // 1 2 3 4 5 6 7 8 9

  // print the values of the vector
  for (int i=0; i<myvector.size(); i++) cout<<myvector[i]<<" ";

  // reverse the vector
  std::reverse(myvector.begin(),myvector.end());    // 9 8 7 6 5 4 3 2 1

  // print out content:
  std::cout << "myvector contains:";
  for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

答案 2 :(得分:0)

这听起来像是家庭作业。此外,有几种方法可以做到这一点。你说你不想要实际的代码,所以这里是:

如何编写[向量]

我认为这意味着“创建一个向量并将其放入其中”。问题是,我不知道你想把它放进去。

#include <vector>

int main()
{
    std::vector<int> vec;
    for (int i = 0; i < 10; ++i) {
        vec.push_back(i);
    }
    return 0;
}

然后显示矢量

有几种方法可以做到这一点。我知道最酷的是使用ostream_iterator。但是,如果这是一个班级,老师可能会有点惊讶看到。

反转[向量]

有一个std::reverse。如果这是不可接受的,你可以简单地swap the first element with the last element, the second element with the next to last element, etc(PDF,第143页)。将向量的前半部分与后半部分交换时要小心停止。如果你继续前进,你将再次反转向量,这将为你留下你的开始。

并显示反转的矢量?

这只不过是重做代码来首先显示向量。