Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将数据附加到C+中的数组+;_C++_Arrays - Fatal编程技术网

C++ 将数据附加到C+中的数组+;

C++ 将数据附加到C+中的数组+;,c++,arrays,C++,Arrays,如何将数据(norm_b)插入数组,如Python中的append?您只能将值“附加”到可以动态增长大小的数据结构中。如果大小固定,则为类c数组。您可以尝试使用一个std::vector,它有一个push_-back方法,相当于python-append方法 注意:代替C类数组,考虑使用 STD::Labe,这是C++ STL的一部分,让您在其上使用STL算法。 < P>数组的大小不会在其生命周期内改变。因此,无法插入(或删除)元素 相反,可以做的是动态分配一个数组,在插入时,分配一个更大的数组

如何将数据(norm_b)插入数组,如Python中的
append

您只能将值“附加”到可以动态增长大小的数据结构中。如果大小固定,则为类c数组。您可以尝试使用一个
std::vector
,它有一个
push_-back
方法,相当于python-append方法


注意:代替C类数组,考虑使用<代码> STD::Labe<代码>,这是C++ STL的一部分,让您在其上使用STL算法。

< P>数组的大小不会在其生命周期内改变。因此,无法插入(或删除)元素

相反,可以做的是动态分配一个数组,在插入时,分配一个更大的数组,从旧数组复制元素,然后可以取消分配,或者至少这是一般的想法;我跳过了实现细节。这种数据结构称为可调整大小的数组。标准库实现了可调整大小的数组:
std::vector

谢谢大家

解决

更新:

double b[3] = {3,3,4};
  for(int i=0;i<3;i++) {
  cout<<b[i]<<" "<<endl;
}

int sum = 0;
  for(int i=0;i<3;i++) {
    sum += b[i];
  } cout<<"\n"<<sum<<endl;


for(int i=0;i<3;i++) {
  double norm_b = b[i]/sum;
  cout<<norm_b<<endl;
}
#包括
向量向量机;

对于(inti=0;i,因为您提到了Python,所以有更好的库类和算法更接近于您可能从Python中使用的库类和算法

#包括
#包括
#包括
void main(){
std::vector b{3,3,4};//Init vector
//如果编译器支持C++11,则可以使用范围
用于(自动值:b)
{
std::cout
您可以使用vector作为附加数据,您可以随意使用。要使用vector,您必须包含头文件名vector。下面是代码:
#包括
#包括
使用名称空间std;
int main()
{
//首先声明一个向量
向量;
整数和=0;

对于(int i=0;i如果您无法更改嵌入式数组的大小,请使用
std::vector
代替您想要的是
std::vector
,而不是C型数组。当目标是调整大小时,为什么要谈论
std::array
disturbing@bruno在第一行给出固定大小的数组。显然,
std::vector
是正确的解决方案关于。我提到
std::array
作为第一行声明的替代方案,我认为你必须更清楚,比如当size if常量而不是C-like时……你是对的@bruno:)问题也不是那么清楚(如果你开始分配固定大小的数组,那么谈论动态大小的向量对我来说没有多大意义。
#include <vector>

  vector<double> vec;
  for(int i=0;i<3;i++) {
      vec.push_back(b[i]/sum);
      cout<<vec[i]<<endl;
  }
you can use vector for append data as more as you like.For use vector you have to include a header file name vector.Here the code below:
#include<iostream>
#include<vector>
using namespace std;
int main()
  {
     //declare a vector first

    vector<double>v;
    int sum = 0;
    for(int i=0;i<3;i++) 
    {
        sum += b[i];
    }
     for(int i=0;i<3;i++) 
    {
     vec.push_back(b[i]/sum);
     cout<<vec[i]<<" "<<endl;
    }
return 0;
}