标签: vector

在int的向量上使用std :: swap

我有一个vectorint ...我只想交换两个值.

    std::vector<int> vec;

    vec.push_back(0);
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);
    vec.push_back(4);
    vec.push_back(5);
    vec.push_back(6);
    vec.push_back(7);
    vec.push_back(8);

    std::swap(vec.begin(), vec.end());
Run Code Online (Sandbox Code Playgroud)

在调用swap之前,我有我的vec:

[0,1,2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)

std::swap(...)我希望将vec作为:

[8,1,2,3,4,5,6,7,0]
Run Code Online (Sandbox Code Playgroud)

但它仍然是初始状态.这里有什么问题?

c++ swap vector

-3
推荐指数
1
解决办法
393
查看次数

你如何在c ++中使用向量?

我是c ++的初学者,我正在努力理解向量.

我知道基本格式是:

vector <dataType> vectorName;
Run Code Online (Sandbox Code Playgroud)

人们告诉我,矢量就像数组.但是,我不知道

理解是对于数组你可以这样做:

array[] = {1, 2, 3}
Run Code Online (Sandbox Code Playgroud)

但对于矢量,您似乎无法将其设置为列表.或者你有

继续使用.push_back().

另外,你可以使用vectorName[1]或不喜欢的东西吗?

任何人都可以向我解释这个吗?

谢谢.

c++ vector

-3
推荐指数
1
解决办法
122
查看次数

我如何简单地打印矢量?

如果我有这样的矢量:

struct vector3D {
    float x;
    float y;
    float z;
};

vector3D aVector = { 3.4, 4.4, 9.3 }; // my vector
Run Code Online (Sandbox Code Playgroud)

哪有我coutaVector控制台?

c++ vector

-3
推荐指数
1
解决办法
66
查看次数

初始化时矢量大小不为零

我正在使用inet v3.4.0.我正在尝试创建一个移动模型.但每当我创建任何类型的std :: vector时,它都会随机大小初始化.

初始化时,它永远不会有零大小.这应该发生吗?因为从C++向量,我看到在创建向量时,例如

std::vector <int*> a;
Run Code Online (Sandbox Code Playgroud)

a 应该有一个大小为零.

c++ vector inet omnet++

-3
推荐指数
1
解决办法
3954
查看次数

如何让push_back在C++程序中工作

我正在进行C++任务,并且在push_back方面存在一些错误问题.错误消息显示:

没有匹配的成员函数来调用'push_back'.

该错误发生在以下行: book.push_back(name,number,email);

这是代码:

//Program

#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>

using namespace std;

// Declaring ye ol' phonebook structure //
struct phoneBook {
public:
    string name;
    int number;
    string email;
};

int main(){
    // Declaring the VECTOR of the Phonebook
    vector<phoneBook>book;
    string fileName;
    //reading the file
    cout <<"Enter file name to read contacts: ";
    cin >> fileName;

    std::string myline;
    std::ifstream infile(fileName);
        while (std::getline(infile, myline))
    {
        std::istringstream iss(myline);
        string name;
        int number;
        string email;
        if(!(iss …
Run Code Online (Sandbox Code Playgroud)

c++ vector push-back

-3
推荐指数
1
解决办法
823
查看次数

如何将除bools向量中的一个元素之外的所有元素设置为true?

我有一个vectorC++.

vector<bool> trumpIsGoodFor(42);
Run Code Online (Sandbox Code Playgroud)

我需要设置除第24个元素之外的所有元素true.

我想使用C++ 11/14使用一行/两行或优雅的作业来完成它.

c++ vector c++11

-3
推荐指数
1
解决办法
250
查看次数

迭代C++向量的最快方法

我正在寻找有关矢量迭代的一些提示.我正在尝试完成一个挑战,你必须实现一个函数(SumOfTwo),它接受两个向量和一个和作为参数,并且必须检查两个向量中是否有任何数字对,如果添加可以给出总和作为参数传递.

我的功能很好,除了它不包括500毫秒的时间限制.我觉得有一个更好的方法来迭代两个向量而不是两个for循环,但我觉得非常卡住......

bool sumOfTwo(std::vector<int> a, std::vector<int> b, int v) {
    if((a.empty()) || b.empty()){
        return false;
    }
    for (std::vector<int>::iterator it1 = a.begin(); it1<=a.end(); ++it1)     {
            for (std::vector<int>::iterator it2 = b.begin(); it2<=b.end(); ++it2) {
                if ((*it1 + *it2) == v){
                    return true;
                }
            }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

c++ iteration vector time-limiting

-3
推荐指数
1
解决办法
1224
查看次数

为什么vector.size() - 1给出了垃圾值?

我曾尝试运行此代码

// vector::size
#include <iostream>
#include <vector>

int main ()
{
   std::vector<int> myints;
   std::cout << "size: " << myints.size() << '\n';
   std::cout << "size: " << myints.size()-1 << '\n';

 return 0; 
}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是输出来了

0

垃圾价值

它应该是

0

-1

这是:代码

c++ debugging vector issue-tracking

-3
推荐指数
1
解决办法
311
查看次数

对于std :: vector,析构函数被调用两次,优化级别为0

我正在尝试使用编译器资源管理器了解std::vector为其及其emplace_back (or) push_back函数生成的汇编代码.

注意:优化级别为0,即使用-O0

我无法理解的一件事是,为什么有两个析构函数被调用而不是一个(因为你可以看到只创建了一个向量.如果我假设一个临时对象是在内部创建的,那么我必须看到对std::vector构造函数的调用.

这与clang编译器也是一样的.

有人可以解释一下这里发生了什么吗?

编辑1:

#include <vector>
int main()
{
    std::vector<int> vec;
    vec.emplace_back(10);
}
Run Code Online (Sandbox Code Playgroud)

编辑2:删除屏幕截图,因为它很难阅读.

c++ vector c++11

-3
推荐指数
1
解决办法
74
查看次数

如何使用函数参数设置数组大小?

当我为练习编写一些代码时遇到了问题.这是关于数组大小设置.我尝试了几种不同的方法,但它们没有用.

这是我的代码:

float mean(vector<float> numbers){
     int size = numbers.size();
     float dizi[size];
     float ort,toplam = 0.0;
     for(unsigned int i=0; i<numbers.size(); i++){
         dizi[i] = numbers[i];
         toplam += dizi[i];
     }

     ort = toplam / numbers.size();

     return ort;
 }
Run Code Online (Sandbox Code Playgroud)

我收到的错误是"variable length array used""variable length arrays are a C99 feature".解决办法是什么?

c++ vector

-3
推荐指数
1
解决办法
81
查看次数