#include<bits/stdc++.h>
using namespace std;
main()
{
vector<vector<int> > v;
for(int i = 0;i < 3;i++)
{
vector<int> temp;
for(int j = 0;j < 3;j++)
{
temp.push_back(j);
}
//cout<<typeid(temp).name()<<endl;
v[i].push_back(temp);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试分配一个二维向量.我收到以下错误
No matching function for call to
std ::vector<int>::push_back(std::vector<int> &)
Run Code Online (Sandbox Code Playgroud) 我知道您可以通过以下方式初始化具有某个值的1d向量:
vector<int> vec(10, 100); //creates a vector of size 10 and each element = 100
Run Code Online (Sandbox Code Playgroud)
现在我想用2d矢量做同样的事情.我知道以下内容会产生错误,因为未指定列的大小:
vector<vector<int> > vec(10, 100);
Run Code Online (Sandbox Code Playgroud)
那么,有什么方法可以实现这一目标吗?此外,我想保持2d向量中每个向量的列大小相同(即nxn网格).
或者也许我可以用某种方式使用"std :: fill()"函数来实现这个目的?这个功能可以扩展到nxm网格吗?
所以我在这里有一个 2D 向量,我想为其分配一个值 num,我想看看作为 C++ 菜鸟的填充与 memset() 哪个更好,我实际上在设置正确的代码语法时遇到了问题,因为我总是在以下情况下遇到分段错误我做。
vector<vector<int>> matrix(10, vector<int>(10000000));
int main()
{
int num;
cin >> num;
int i = 0;
for (auto &i : matrix)
{
fill(i.begin(), i.end(), num);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我一直在关注如何使用C++输出二维向量的教程,并得出以下代码:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector < vector < int > > test { { 1, 2, 3,
4, 5, 6,
7, 8, 9 } };
for( unsigned int i = 0; i < test.size(); i++ )
{
for( unsigned int j = 0; j < test[i].size(); j++ )
{
cout << test[i][j] << " ";
}
cout << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的结果看起来并不完全符合预期; 我希望能够将矢量输出到二维网格状空间.据我所知,我的代码遵循示例,但是 …
我需要能够在创建它的同一行中初始化int 的二维向量。
更具体地说,我必须创建一个3x2大小的 2D 向量,并仅使用1 行代码将其所有值设置为 0 。
有没有一种方法可以在不使用 for 循环和几行代码的情况下完成?
目标:我有一个2d矢量.我想按照第4栏中的值对其进行排序.例如,我想对此向量进行排序:
vector<vector<double>> vector1 = {{4,3,5,3},
{2,6,3,7},
{6,8,5,1},
{5,6,1,5}};
Run Code Online (Sandbox Code Playgroud)
我想按第4列中的值对其行进行排序,以便它在行中的元素位置不变,但是向量中的行位置会被更改,以便第4列中的元素按以下顺序排列:
vector1 = {{6,8,5,1},
{4,3,5,3},
{5,6,1,5},
{2,6,3,7}};
Run Code Online (Sandbox Code Playgroud)
我假设我将不得不使用sort(),但在网上搜索后,我仍然完全不知道如何去做,所以任何直接帮助代码甚至指向网站或资源的方式都将非常感激.谢谢!
我正在用c ++制作一个简单的蛇游戏.它编译,但不会运行.我在mac上使用netbeans,我以前从来没有这样的问题,所以我认为这是我的代码的问题:
#include <vector>
std::vector<std::vector<int> > snake;//the snake
int main(){
snake[0][0]=0;
}
Run Code Online (Sandbox Code Playgroud)
我认为它可能是2d矢量的问题.