我想像数组一样初始化一个向量.
例
int vv[2] = {12, 43};
Run Code Online (Sandbox Code Playgroud)
但是当我这样做的时候,
vector<int> v(2) = {34, 23};
Run Code Online (Sandbox Code Playgroud)
要么
vector<int> v(2);
v = {0, 9};
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误:
在'{'标记之前预期的primary-expression
和
错误:预期','或';' 在'='之前
分别.
我想知道是否有办法制作带有公布元素的矢量..
而不是必须做:
vector< int > v;
v.push_back(3);
v.push_back(5);
v.push_back(1);
Run Code Online (Sandbox Code Playgroud)
等等,其中v = {3,5,1},
我想制作一个已包含以下元素的向量:
vector< int > v = {3,5,1};
Run Code Online (Sandbox Code Playgroud)
因为在向量中插入每个数字是很多工作.这有什么捷径吗?
尝试在 C++ 中创建一个简单的向量时,出现以下错误:
非聚合不能用初始化列表初始化。
我正在使用的代码是:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
vector <int> theVector = {1, 2, 3, 4, 5};
cout << theVector[0];
}
Run Code Online (Sandbox Code Playgroud)
我试着把:
CONFIG += c++11
Run Code Online (Sandbox Code Playgroud)
进入我的.pro文件,保存并重建它。但是,我仍然遇到相同的错误。我正在使用我认为是 Qt 5.5 的东西,About如果它对您有意义,那么当我按下时会发生以下情况:Qt's About。
任何帮助表示赞赏。
我有一个元素类型的向量vector<int>,我想快速插入这样的元素:
triangles.push_back(vector<int>(som1, som2, som3))
Run Code Online (Sandbox Code Playgroud)
但它不起作用,没有vector<int>匹配参数列表的构造函数.
有没有快速的方法来做,或者我必须创建一个临时vector<int>变量,推回som1 som 2和som3,最后推回三角形的临时变量?
就像已经问到的这个问题一样,我想用STL初始化一个容器,其中元素以最干净的方式进行硬编码.在这种情况下,元素是双嵌套容器:
set<vector<int> > A;
Run Code Online (Sandbox Code Playgroud)
我希望(例如)将以下值放入:
A = [[0,0,1],[0,1,0],[1,0,0],[0,0,0]];
Run Code Online (Sandbox Code Playgroud)
C++ 0x没问题,使用g++4.4.1.STL是优选的,因为我不使用Boost代码的任何其他部分(虽然我不介意用它的例子!).
我想定义一个全局容器(C++ 03),这是我尝试过的一个示例代码,它不起作用.
#include <vector>
#include <string>
using namespace std;
vector<string> Aries;
Aries.push_back("Taurus"); // line 6
int main() {}
Run Code Online (Sandbox Code Playgroud)
编译错误:
prog.cpp:6:1: error: 'Aries' does not name a type
Run Code Online (Sandbox Code Playgroud)
我似乎可以定义一个空的全局向量,但无法填充它.看起来在C++ 03中,我也无法指定初始化器,例如:
vector<string> Aries = { "Taurus" };
Run Code Online (Sandbox Code Playgroud)
我在这里犯了错误,或者我如何解决这个问题?
我尝试在StackOverflow上搜索,看看之前是否已经回答了这个问题,但是只发现了这些帖子:C++中的全局对象,在C++中定义全局常量,这对此没有帮助.
我目前正在尝试创建一个包含浮点数组的向量.我有一段难以忍受的时间.
我有以下代码:
float testArray[4] = {20, -3.14/2, 5, -3.14/2};
std::vector<float[4]> inputVector;
std::vector<float[4]>::iterator it = inputVector.begin();
inputVector.insert(it, testArray);
Run Code Online (Sandbox Code Playgroud)
我一直收到一个错误说"数组必须使用大括号括起来的初始化程序初始化"和"无效的数组赋值".我用int的向量(而不是数组的向量)尝试了相同的代码,并且没有任何问题.
我认为存在一个我不理解的根本问题.
任何帮助表示赞赏!
不是实际问题,而是时尚危机..
vector<array<unsigned int, 3>> tri;
tri.push_back(array<unsigned int, 3> {0, 0, 0});
Run Code Online (Sandbox Code Playgroud)
给我一个语法错误.有没有办法初始化一个std数组与值在一行中的向量?
Point P0(0,0), P1(3, 4), P2(-50,-3), P3(2,0); //Input Points (fine)
std::vector<Point> Points(P0,P1, P2 ,P3); (not fine)
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.如何将点矢量初始化为上述值?或者有更简单的方法吗?
c++ ×10
vector ×5
arrays ×3
stl ×2
boost ×1
c++03 ×1
c++11 ×1
containers ×1
declaration ×1
qt ×1